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找出文件中使用率最高的汉字实例详解
Jun 03 Python
python爬虫入门教程--优雅的HTTP库requests(二)
May 25 Python
Python使用matplotlib绘制正弦和余弦曲线的方法示例
Jan 06 Python
Windows环境下python环境安装使用图文教程
Mar 13 Python
Python标准库shutil用法实例详解
Aug 13 Python
django如何连接已存在数据的数据库
Aug 14 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
python 两个数据库postgresql对比
Oct 21 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 Python
讲解Python实例练习逆序输出字符串
May 06 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
肝肠寸断了解下!盘点史上最伤心的十大动漫
2020/03/04 日漫
PHP4引用文件语句的对比
2006/10/09 PHP
php5中类的学习
2008/03/28 PHP
基于php上传图片重命名的6种解决方法的详细介绍
2013/04/28 PHP
解析在zend Farmework下如何创立一个FORM表单
2013/06/28 PHP
PHP经典算法集锦【经典收藏】
2016/09/14 PHP
PHP 文件上传后端处理实用技巧方法
2017/01/06 PHP
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
js有关元素内容操作小结
2011/12/20 Javascript
Jsonp post 跨域方案
2015/07/06 Javascript
JS动态日期时间的获取方法
2015/09/28 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
js类式继承与原型式继承详解
2016/04/07 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
详解Javascript中prototype属性(推荐)
2016/09/03 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
详解vue项目的构建,打包,发布全过程
2017/11/23 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
详解vue2.0模拟后台json数据
2019/05/16 Javascript
vue.js实现三级菜单效果
2019/10/19 Javascript
vue实现拖拽效果
2019/12/23 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
基于JavaScript实现猜数字游戏代码实例
2020/07/30 Javascript
Django卸载之后重新安装的方法
2017/03/15 Python
Python3.6 Schedule模块定时任务(实例讲解)
2017/11/09 Python
python机器学习库常用汇总
2017/11/15 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
英国历史最悠久的DJ设备供应商:DJ Finance、DJ Warehouse、The DJ Shop
2019/09/04 全球购物
设备技术员岗位职责
2015/04/11 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书