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 相关文章推荐
python迭代器实例简析
Sep 25 Python
Python 列表排序方法reverse、sort、sorted详解
Jan 22 Python
python抓取网页中链接的静态图片
Jan 29 Python
python实现SOM算法
Feb 23 Python
python spyder中读取txt为图片的方法
Apr 27 Python
用Python编写一个简单的CS架构后门的方法
Nov 20 Python
python爬虫获取新浪新闻教学
Dec 23 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python日志syslog使用原理详解
Feb 18 Python
Python 线性回归分析以及评价指标详解
Apr 02 Python
python中scrapy处理项目数据的实例分析
Nov 22 Python
python基础之while循环语句的使用
Apr 20 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
用在PHP里的JS打印函数
2006/10/09 PHP
PHP将DateTime对象转化为友好时间显示的实现代码
2011/09/20 PHP
php数组函数序列之array_keys() - 获取数组键名
2011/10/30 PHP
Yii框架获取当前controlle和action对应id的方法
2014/12/03 PHP
解读PHP中上传文件的处理问题
2016/05/29 PHP
Nginx+php配置文件及原理解析
2020/12/09 PHP
一个收集图片的bookmarlet(js 刷新页面中的图片)
2010/05/27 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
JavaScript判断表单提交时哪个radio按钮被选中的方法
2015/03/21 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
jquery常用函数与方法汇总
2015/09/01 Javascript
跟我学习javascript的作用域与作用域链
2015/11/19 Javascript
JavaScript中数组的各种操作的总结(必看篇)
2017/02/13 Javascript
angular.fromJson与toJson方法用法示例
2017/05/17 Javascript
Intellij IDEA搭建vue-cli项目的方法步骤
2018/10/20 Javascript
Vue数据双向绑定的深入探究
2018/11/27 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
Python正则表达式分组概念与用法详解
2017/06/24 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Python和Go语言的区别总结
2019/02/20 Python
python制作图片缩略图
2019/04/30 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
Python绘制热力图示例
2019/09/27 Python
Python正则表达式急速入门(小结)
2019/12/16 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
面向中国市场的在线海淘美妆零售网站:Beauty House美丽屋
2021/03/02 全球购物
寻找迷宫的一条出路,o通路;X:障碍
2016/07/10 面试题
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
小区门卫管理制度
2014/01/29 职场文书
道路建设实施方案
2014/03/18 职场文书
《泉水》教学反思
2014/04/11 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
windows server 2012安装FTP并配置被动模式指定开放端口
2022/06/10 Servers