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 基础学习教程
Feb 08 Python
Django1.3添加app提示模块不存在的解决方法
Aug 26 Python
Python中if __name__ == '__main__'作用解析
Jun 29 Python
Python中的anydbm模版和shelve模版使用指南
Jul 09 Python
利用python获取Ping结果示例代码
Jul 06 Python
Python编程pygal绘图实例之XY线
Dec 09 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
Jun 25 Python
flask框架单元测试原理与用法实例分析
Jul 23 Python
python经典趣味24点游戏程序设计
Jul 26 Python
浅谈Python的方法解析顺序(MRO)
Mar 05 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面向对象编程快速入门
2006/12/14 PHP
php实现的一个很好用HTML解析器类可用于采集数据
2013/09/23 PHP
php实现两个数组相加的方法
2015/02/17 PHP
PHP中仿制 ecshop验证码实例
2017/01/06 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
5 cool javascript apps
2007/03/24 Javascript
js模拟弹出效果代码修正版
2008/08/07 Javascript
JavaScript 捕获窗口关闭事件
2009/07/26 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
Javascript 实现图片无缝滚动
2014/12/19 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
基于gulp合并压缩Seajs模块的方式说明
2016/06/14 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
JavaScript结合HTML DOM实现联动菜单
2017/04/05 Javascript
使用bootstraptable插件实现表格记录的查询、分页、排序操作
2017/08/06 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
浅谈Vue为什么不能检测数组变动
2019/10/14 Javascript
Vue proxyTable配置多个接口地址,解决跨域的问题
2020/09/11 Javascript
python使用WMI检测windows系统信息、硬盘信息、网卡信息的方法
2015/05/15 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
django框架模板中定义变量(set variable in django template)的方法分析
2019/06/24 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
基于python获取本地时间并转换时间戳和日期格式
2020/10/27 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
大学生应聘自荐信
2013/10/11 职场文书
店长职务说明书
2014/02/04 职场文书
幼儿园大班见习报告
2014/10/31 职场文书
员工工作能力评语
2014/12/31 职场文书
三峡大坝导游词
2015/01/31 职场文书
护士岗位竞聘书
2015/09/15 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
教师教育心得体会
2016/01/19 职场文书