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 深入理解yield
Sep 06 Python
日常整理python执行系统命令的常见方法(全)
Oct 22 Python
Python实现以时间换空间的缓存替换算法
Feb 19 Python
python实现决策树
Dec 21 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
解决python中 f.write写入中文出错的问题
Oct 31 Python
wxpython实现按钮切换界面的方法
Nov 19 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
春节到了 教你使用python来抢票回家
Jan 06 Python
Python中常见的数制转换有哪些
May 27 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
Python常用断言函数实例汇总
Nov 30 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
浅谈apache和nginx的rewrite的区别
2013/02/22 PHP
PHP 读取文本文件内容并分页显示
2016/01/02 PHP
简单实现php上传文件功能
2017/09/21 PHP
javascript 跳转代码集合
2009/12/03 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
通过继承IHttpHandle实现JS插件的组织与管理
2010/07/13 Javascript
方便实用的jQuery checkbox复选框全选功能简单实例
2013/10/09 Javascript
原生JS实现加入收藏夹的代码
2013/10/24 Javascript
jQuery前端分页示例分享
2015/02/10 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
自己动手制作基于jQuery的Web页面加载进度条插件
2016/06/03 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
vue框架搭建之axios使用教程
2018/07/11 Javascript
vue多级复杂列表展开/折叠及全选/分组全选实现
2018/11/05 Javascript
Vue 401配合Vuex防止多次弹框的案例
2020/11/11 Javascript
利用Psyco提升Python运行速度
2014/12/24 Python
python中列表和元组的区别
2017/12/18 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
python实现LRU热点缓存及原理
2019/10/29 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
Python自定义sorted排序实现方法详解
2020/09/18 Python
python 多线程中join()的作用
2020/10/29 Python
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
学校经典推荐信
2013/10/30 职场文书
企业人事任命书
2014/06/05 职场文书
2014教育局对照检查材料思想汇报
2014/09/23 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
mybatis3中@SelectProvider传递参数方式
2021/08/04 Java/Android
pycharm安装深度学习pytorch的d2l包失败问题解决
2022/03/25 Python
Android 界面一键变灰 深色主题工具类
2022/04/28 Java/Android