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计算最小优先级队列代码分享
Dec 18 Python
Python中bisect的用法
Sep 23 Python
python迭代dict的key和value的方法
Jul 06 Python
django 将model转换为字典的方法示例
Oct 16 Python
Python字典中的键映射多个值的方法(列表或者集合)
Oct 17 Python
python如何制作英文字典
Jun 25 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
wxPython实现带颜色的进度条
Nov 19 Python
Python如何使用BeautifulSoup爬取网页信息
Nov 26 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
python自动化八大定位元素讲解
Jul 09 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
Discuz! Passport 通行证整合
2008/03/27 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
PHP上传图片、删除图片简单实例
2016/11/12 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
html读出文本文件内容
2007/01/22 Javascript
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
document.onreadystatechange事件的用法分析
2009/10/17 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
在JavaScript并非所有的一切都是对象
2013/04/11 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
浅谈重写window对象的方法
2014/12/29 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
微信小程序实现点击按钮修改view标签背景颜色功能示例【附demo源码下载】
2017/12/06 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
JS+Canvas实现五子棋游戏
2020/08/26 Javascript
微信小程序实现简单购物车功能
2020/12/30 Javascript
CentOS中升级Python版本的方法详解
2017/07/10 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
pyqt5实现按钮添加背景图片以及背景图片的切换方法
2019/06/13 Python
Django的Modelforms用法简介
2019/07/27 Python
图文详解Django使用Pycharm连接MySQL数据库
2019/08/09 Python
django列表筛选功能的实现代码
2020/03/27 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
python re模块常见用法例举
2021/03/01 Python
关于 HTML5 的七个传说小结
2012/04/12 HTML / CSS
《路旁的橡树》教学反思
2014/04/07 职场文书
给女朋友的道歉短信
2015/05/12 职场文书
现货白银电话营销话术
2015/05/29 职场文书
从贫穷到富有,是知识技能和学习力的差别
2019/08/20 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
Python音乐爬虫完美绕过反爬
2021/08/30 Python