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自动化测试之从命令行运行测试用例with verbosity
Sep 28 Python
Python中的下划线详解
Jun 24 Python
Python操作Access数据库基本步骤分析
Sep 19 Python
详解Python 序列化Serialize 和 反序列化Deserialize
Aug 20 Python
Python设计模式之命令模式简单示例
Jan 10 Python
python数据封装json格式数据
Mar 04 Python
python生成1行四列全2矩阵的方法
Aug 04 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
Python SQLAlchemy库的使用方法
Oct 13 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
Feb 24 Python
解决pytorch读取自制数据集出现过的问题
May 31 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
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
让IE8支持DOM 2(不用框架!)
2009/12/31 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
jQuery.holdReady()方法用法实例
2014/12/27 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
2016/01/05 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
jQuery实现对无序列表的排序功能(附demo源码下载)
2016/06/25 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
AngularJS表格添加序号的方法
2017/03/03 Javascript
AngularJS  ng-repeat遍历输出的用法
2017/06/19 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
我要点爆”微信小程序云开发之项目建立与我的页面功能实现
2019/05/26 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
python实现批量获取指定文件夹下的所有文件的厂商信息
2014/09/28 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Python读取properties配置文件操作示例
2018/03/29 Python
python实现支付宝当面付(扫码支付)功能
2018/05/30 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
Wiggle美国:英国骑行、跑步、游泳、铁人三项商店
2018/10/27 全球购物
Parfumdreams英国:香水和化妆品
2019/05/10 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
提高EJB性能都有哪些技巧
2012/03/25 面试题
大学本科生职业生涯规划书范文
2014/09/14 职场文书
听证会主持词
2015/07/03 职场文书
校园新闻稿范文
2015/07/18 职场文书
python实现Thrift服务端的方法
2021/04/20 Python
Python3的进程和线程你了解吗
2022/03/16 Python