【Python3学习】5.如何使用pandas的透视图(pivot_table)?
太长不看版本
Python/pandas中怎么做透视图?
答:会用pivot_table函数即可。
案例数据准备
用文本编辑器输入以下内容,另存为D:\workspace\in.csv
。
1 | name,money,class,region |
具体操作
怎么弄个透视图呀?
书接上文。
小马学会了匹配数据,半小时就完成了数据匹配。他得意的看了看已经发送出去的邮件,像是想起什么似的问了问:“除了vlookup,我们还经常用excel做透视表和图标,比用公式快不少,用python,或者说用pandas怎么实现呢?”
根据区域统计钱的均值和总值
“那我们就先说最常见的透视表怎么做吧,”胖驼说。“还是我们先准备一点数据来统计,你先现在这个in.csv这个表,比如我们先统计一下这个班组不同区域(region)的平均工资和总工资是多少。“
1 | import pandas as pd # 导入pandas包 |
从样本的输出结果我们可知,城市区域平均工资1946.5比乡村3268还低。
1 | mean sum |
根据班级和区域统计钱的均值和总值
方法1
“如果要更多的分类看平均金额怎么办呢?”
1 | result_df = pd.pivot_table(df,values='money',index=['region','class'],aggfunc=['mean']) #pd.pivot_table就是透视图函数了,values就是需要统计的内容,比如我们求money列的平均数和求和;index就是左边的列,aggfunc就是需要统计的方式,'mean'是平均数,'sum'是求和。 |
结果:
1 | mean |
方法2
“使用EXCEL有时候我们还会使用到‘列’,我们还是用刚才那个例子,只看平均值的话,不同班级、不同区域结果是什么样。”
1 | result_df = pd.pivot_table(df,values='money',index=['region'],columns=['class'],aggfunc=['mean']) #pd.pivot_table就是透视图函数了,values就是需要统计的内容,比如我们求money列的平均数和求和;index就是左边的列,aggfunc就是需要统计的方式,'mean'是平均数,'sum'是求和。 |
结果:
1 | mean |
“pivot_table方法十分强大,日常简单应用基本可以替代groupby方法,进一步学习可以借助一下搜索引擎中搜出的优秀博文了,如:Python中pandas透视表pivot_table功能详解(非常简单易懂) - The-Chosen-One - 博客园 (cnblogs.com)