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程序
Apr 04 Python
python二分查找算法的递归实现方法
May 12 Python
浅谈Python爬取网页的编码处理
Nov 04 Python
python 获取当天凌晨零点的时间戳方法
May 22 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
python实现雪花飘落效果实例讲解
Jun 18 Python
python celery分布式任务队列的使用详解
Jul 08 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
Aug 06 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
python读取hdfs上的parquet文件方式
Jun 06 Python
教你如何用python操作摄像头以及对视频流的处理
Oct 12 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 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学习 运算符与运算符优先级
2008/06/15 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
php生成HTML文件的类方法
2019/10/11 PHP
javascript 当前日期转化为中文的实现代码
2010/05/13 Javascript
gridview生成时如何去掉style属性中的border-collapse
2014/09/30 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
Javascript中神奇的this
2016/01/20 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
精彩的Bootstrap案例分享 重点在注释!(选项卡、栅格布局)
2016/07/01 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
jQuery实现简单评论功能
2020/08/19 jQuery
python3实现暴力穷举博客园密码
2016/06/19 Python
使用css如何制作时间ICON方法实践
2012/11/12 HTML / CSS
英国优质鞋类专家:Robinson’s Shoes
2017/12/08 全球购物
The Kooples美国官方网站:为情侣提供的法国当代时尚品牌
2019/01/03 全球购物
CHARLES & KEITH加拿大官网:新加坡时尚品牌
2020/03/26 全球购物
高中历史教学反思
2014/02/08 职场文书
最常使用的求职信
2014/05/25 职场文书
乡镇消防安全责任书
2014/07/23 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
2014年仓库管理工作总结
2014/12/17 职场文书
2015年学校教科室工作总结
2015/07/20 职场文书
女方家长婚礼答谢词
2015/09/29 职场文书
Golang 编译成DLL文件的操作
2021/05/06 Golang
Python如何识别银行卡卡号?
2021/06/10 Python
Python 的 sum() Pythonic 的求和方法详细
2021/10/16 Python