python DataFrame中stack()方法、unstack()方法和pivot()方法浅析


Posted in Python onApril 06, 2022

1.stack()

stack()用于将列索引转换为最内层的行索引,这样叙述比较抽象,看示例就容易理解啦:

准备一组数据,给其设置双索引。

import pandas as pd
data = [['A类', 'a1', 123, 224, 254], ['A类', 'a2', 234, 135, 444], ['A类', 'a3', 345, 241, 324],
        ['B类', 'b1', 112, 412, 466], ['B类', 'b2', 224, 235, 345], ['B类', 'b3', 369, 214, 352],
        ['C类', 'c1', 236, 251, 485], ['C类', 'c2', 378, 216, 515], ['C类', 'c3', 135, 421, 312],
        ['D类', 'd1', 306, 325, 496], ['D类', 'd2', 147, 235, 524], ['D类', 'd3', 520, 222, 267]]
df = pd.DataFrame(data=data, columns=['类别', '编号', 'A指标', 'B指标', 'C指标'])
df = df.set_index(['类别', '编号'])
print(df)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

df = df.stack()
print(df)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

如图,成功将索引列之外的 A指标,B指标,C指标三列放在了同一列。

此时的df,不再是一个DataFrame,而变为了一个Series对象。:

print(type(df))

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

该Series的index列不同于原DataFrame的index列,而是在原DataFrame的index列的基础上,又增加了从右边合并过来的部分:

print(df.index)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

此时Values为:

print(df.values)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

2. unstack()

unstack是stack的逆向操作。

在上述示例的代码的基础上,对上边的df继续调用unstack()方法:

df1 = df.unstack()
print(df1)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

可以看到unstack变回了原来的样子。

3. pivot()

这里对于上边例子中的数据稍作调整:

不设置多重索引

import pandas as pd
data = [['A类', '1', 123, 224, 254], ['A类', '2', 234, 135, 444], ['A类', '3', 345, 241, 324],
        ['B类', '1', 112, 412, 466], ['B类', '2', 224, 235, 345], ['B类', '3', 369, 214, 352],
        ['C类', '1', 236, 251, 485], ['C类', '2', 378, 216, 515], ['C类', '3', 135, 421, 312],
        ['D类', '1', 306, 325, 496], ['D类', '2', 147, 235, 524], ['D类', '3', 520, 222, 267]]
df = pd.DataFrame(data=data, columns=['类别', '编号', 'A指标', 'B指标', 'C指标'])
print(df)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

df2 = df.pivot(index='编号', columns='类别', values='A指标')
print(df2)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

index和columns分别指设定那一列的值为index,设置那一列的值为columns。values指表格要体现的指标。

df3 = df.pivot(index='类别', columns='编号', values='A指标')
print(df3)

python DataFrame中stack()方法、unstack()方法和pivot()方法浅析

总结

到此这篇关于python DataFrame中stack()方法、unstack()方法和pivot()方法的文章就介绍到这了,更多相关DataFrame stack()、unstack()和pivot()内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Docker上部署Python的Flask框架的教程
Apr 08 Python
简单上手Python中装饰器的使用
Jul 12 Python
python如何在终端里面显示一张图片
Aug 17 Python
python3使用PyMysql连接mysql数据库实例
Feb 07 Python
python中实现k-means聚类算法详解
Nov 11 Python
Django在win10下的安装并创建工程
Nov 20 Python
详解django三种文件下载方式
Apr 06 Python
python实现控制台打印的方法
Jan 12 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
Aug 17 Python
Python数据分析pandas模块用法实例详解
Nov 20 Python
深度学习tensorflow基础mnist
Apr 14 Python
Python简易开发之制作计算器
Apr 28 Python
浅谈Python中对象是如何被调用的
Apr 06 #Python
Python实现猜拳与猜数字游戏的方法详解
python字符串的一些常见实用操作
Apr 06 #Python
python中字符串String及其常见操作指南(方法、函数)
Apr 06 #Python
Python Numpy库的超详细教程
进行数据处理的6个 Python 代码块分享
Apr 06 #Python
 分享一个Python 遇到数据库超好用的模块
Apr 06 #Python
You might like
图书管理程序(二)
2006/10/09 PHP
PHP中new static()与new self()的区别异同分析
2014/08/22 PHP
PHP Opcache安装和配置方法介绍
2015/05/28 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
PHP实践教程之过滤、验证、转义与密码详解
2017/07/24 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
让jQuery与其他JavaScript库并存避免冲突的方法
2013/12/23 Javascript
关于JavaScript命名空间的一些心得
2014/06/07 Javascript
完美兼容各大浏览器的jQuery插件实现图片切换特效
2014/12/12 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
jQuery实现统计输入文字个数的方法
2015/03/11 Javascript
js+css简单实现网页换肤效果
2015/12/29 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
AngularJS extend用法详解及实例代码
2016/11/15 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
微信小程序实现提交input信息到后台的方法示例
2019/01/19 Javascript
JavaScript鼠标拖拽事件详解
2020/04/03 Javascript
JS eval代码快速解密实例解析
2020/04/23 Javascript
ant-design-vue按需加载的坑的解决
2020/05/14 Javascript
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
浅谈keras中的keras.utils.to_categorical用法
2020/07/02 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
精美的手工家居和生活用品:Nkuku
2019/11/01 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
国税会议欢迎词
2014/01/16 职场文书
高二历史教学反思
2014/01/25 职场文书
文明餐桌活动方案
2014/02/11 职场文书
个性发展自我评价
2014/02/11 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
教师党的群众路线教育实践活动个人整改措施
2014/11/04 职场文书
小学班主任事迹材料
2014/12/17 职场文书
企业战略合作意向书
2015/05/08 职场文书
用Python实现Newton插值法
2021/04/17 Python