工具篇:EXCEL与python的对比 如何汇总数据
第7章 数据汇总
本章主要讲解如何对数据进行分类汇总。
Excel中使用分类汇总和数据透视可以按特定维度对数据进行汇总
Python中使用的主要函数是groupby和pivot_table。下面分别介绍这两个函数的使用方法。
1. 分类汇总
Excel的数据目录下提供了“分类汇总”功能,可以按指定的字段和汇总方式对数据表进行汇总。
Python中通过Groupby函数完成相应的操作,并可以支持多级分类汇总
Groupby是进行分类汇总的函数,使用方法很简单,制定要分组的列名称就可以,也可以同时制定多个列名称,groupby按列名称出现的顺序进行分组。同时要制定分组后的汇总方式,常见的是计数和求和两种。
#对所有列进行计数汇总
df_inner.groupby('city').count()/
可以在groupby中设置列名称来对特定的列进行汇总。下面的代码中按城市对id字段进行汇总计数。
#对特定的ID列进行计数汇总
df_inner.groupby('city')['id'].count()
city
beijing 2
guangzhou 1
shanghai 2
shenzhen 1
Name: id, dtype: int64
在前面的基础上增加第二个列名称,分布对city和size两个字段进行计数汇总。
#对两个字段进行汇总计数
df_inner.groupby(['city','size'])['id'].count()
city size
beijing A 1
F 1
guangzhou A 1
shanghai A 1
B 1
shenzhen C 1
Name: id, dtype: int64
除了计数和求和外,还可以对汇总后的数据同时按多个维度进行计算,下面的代码中按城市对price字段进行汇总,并分别计算price的数量,总金额和平均金额。
#对city字段进行汇总并计算price的合计和均值。
df_inner.groupby('city')['price'].agg([len,np.sum, np.mean])
2. 数据透视
Excel中的插入目录下提供“数据透视表”功能对数据表按特定维度进行汇总。
Python中也提供了数据透视表功能。通过pivot_table函数实现同样的效果
数据透视表也是常用的一种数据分类汇总方式,并且功能上比groupby要强大一些。下面的代码中设定city为行字段,size为列字段,price为值字段。分别计算price的数量和金额并且按行与列进行汇总。
#数据透视表
pd.pivot_table(df_inner,index=["city"],values=["price"],columns=["size"],aggfunc=[len,np.sum],fill_value=0,margins=True)