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回溯法实现数组全排列输出实例分析
Mar 17 Python
Python处理字符串之isspace()方法的使用
May 19 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
Python实现的密码强度检测器示例
Aug 23 Python
详解Django中间件执行顺序
Jul 16 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
用Python画小女孩放风筝的示例
Nov 23 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
Python绘制K线图之可视化神器pyecharts的使用
Mar 02 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 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 session 存储方式的详细介绍
2013/06/25 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js定时调用方法成功后并停止调用示例
2014/04/08 Javascript
js style动态设置table高度
2014/10/21 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
完美解决jQuery符号$与其他javascript 库、框架冲突的问题
2016/08/09 Javascript
总结javascript中的六种迭代器
2016/08/16 Javascript
如何解决jQuery EasyUI 已打开Tab重新加载问题
2016/12/19 Javascript
nodejs使用express获取get和post传值及session验证的方法
2017/11/09 NodeJs
react redux入门示例
2018/04/19 Javascript
React优化子组件render的使用
2019/05/12 Javascript
js如何实现元素曝光上报
2019/08/07 Javascript
vue 解决addRoutes多次添加路由重复的操作
2020/08/04 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决
2017/07/06 Python
python3.0 模拟用户登录,三次错误锁定的实例
2017/11/02 Python
selenium+python实现1688网站验证码图片的截取功能
2018/08/14 Python
python使用zip将list转为json的方法
2018/12/31 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
50行Python代码实现视频中物体颜色识别和跟踪(必须以红色为例)
2019/11/20 Python
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
Chinti & Parker官网:奢华羊绒女装和创新针织设计
2021/01/01 全球购物
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
2014高考励志标语
2014/06/05 职场文书
大专学生求职信
2014/07/04 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
团日活动总结格式
2015/05/11 职场文书
中学语文教学反思
2016/02/16 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
Nginx 匹配方式
2022/05/15 Servers