Pandas 重塑(stack)和轴向旋转(pivot)的实现


Posted in Python onJuly 22, 2019
import numpy as np
import pandas as pd
from pandas import Series,DataFrame

一、重塑

  • stack:将数据的列索引旋转为行索引
  • unstack:将数据的行索引旋转为列索引
df = DataFrame({'水果':['苹果','梨','草莓'],
        '数量':[3,4,5],
        '价格':[4,5,6]})
print(df)

   价格  数量  水果
0   4   3  苹果
1   5   4   梨
2   6   5  草莓

1.stack()

stack_df = df.stack()
print(stack_df)

0  价格     4
   数量     3
   水果    苹果
1  价格     5
   数量     4
   水果     梨
2  价格     6
   数量     5
   水果    草莓

dtype: object

2.unstack()

print(stack_df.unstack())

  价格 数量  水果
0  4  3  苹果
1  5  4   梨
2  6  5  草莓

3.通过level参数指定旋转轴的层次(默认level=-1)

print(stack_df.unstack(level=0))

     0  1   2
价格   4  5   6
数量   3  4   5
水果  苹果  梨  草莓

二、轴向旋转(pivot)

pivot(index,columns,values):将index指定为行索引,columns是列索引,values则是DataFrame中的值

df = DataFrame({'水果种类':['苹果','苹果','梨','梨','草莓','草莓'],
        '信息':['价格','数量','价格','数量','价格','数量'],
        '值':[4,3,5,4,6,5]})
print(df)

   信息  值 水果种类
0  价格  4   苹果
1  数量  3   苹果
2  价格  5    梨
3  数量  4    梨
4  价格  6   草莓
5  数量  5   草莓

将水果种类作为行索引,将信息作为列索引

print(df.pivot('水果种类','信息','值'))

信息    价格  数量
水果种类       
梨      5   4
苹果     4   3
草莓     6   5

pivot可以用set_index和unstack等价的实现

print(df.set_index(['水果种类','信息']).unstack())

      值  
信息   价格 数量
水果种类     
梨     5  4
苹果    4  3
草莓    6  5

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的pycurl包用法简介
Nov 13 Python
Python中线程的MQ消息队列实现以及消息队列的优点解析
Jun 29 Python
Python之Web框架Django项目搭建全过程
May 02 Python
Python3 伪装浏览器的方法示例
Nov 23 Python
Python实现自动上京东抢手机
Feb 06 Python
使用selenium模拟登录解决滑块验证问题的实现
May 10 Python
python中的协程深入理解
Jun 10 Python
解决Pyinstaller 打包exe文件 取消dos窗口(黑框框)的问题
Jun 21 Python
浅谈Python中的模块
Jun 10 Python
如何更换python默认编辑器的背景色
Aug 10 Python
Pycharm同步远程服务器调试的方法步骤
Nov 04 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
Apr 12 Python
Pandas透视表(pivot_table)详解
Jul 22 #Python
django认证系统 Authentication使用详解
Jul 22 #Python
django Admin文档生成器使用详解
Jul 22 #Python
django表单的Widgets使用详解
Jul 22 #Python
Python代码使用 Pyftpdlib实现FTP服务器功能
Jul 22 #Python
超简单的Python HTTP服务
Jul 22 #Python
对python 中re.sub,replace(),strip()的区别详解
Jul 22 #Python
You might like
用PHP的超级变量$_GET获取HTML表单(Form) 数据
2011/05/07 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php新浪微博登录接口用法实例
2014/12/23 PHP
PHP汉字转换拼音的函数代码
2015/12/30 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
如何快速的呈现我们的网页的技巧整理
2007/07/01 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
jqTransform美化表单
2015/10/10 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
js 获取html5的data属性实现方法
2017/07/28 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
JavaScript多种图形实现代码实例
2020/06/28 Javascript
如何在node环境实现“get数据解析”代码实例
2020/07/03 Javascript
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
2016/05/17 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
TensorFlow打印tensor值的实现方法
2018/07/27 Python
python实现京东秒杀功能
2018/07/30 Python
python K近邻算法的kd树实现
2018/09/06 Python
pytorch GAN伪造手写体mnist数据集方式
2020/01/10 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
网页切图的CSS和布局经验与要点
2015/04/09 HTML / CSS
英国最受信任的在线眼镜商之一:Fashion Eyewear
2019/10/31 全球购物
Crabtree & Evelyn欧盟:豪华洗浴、身体和护发
2021/03/09 全球购物
公关活动策划方案
2014/05/25 职场文书
公司向个人借款协议书范本
2014/10/09 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
雷峰塔导游词
2015/02/09 职场文书
小学班主任教育随笔
2015/08/15 职场文书
CSS3实现三角形不断放大效果
2021/04/13 HTML / CSS
用Python创建简易网站图文教程
2021/06/11 Python