Python数据分组、数据透视

1.1分组键是列名

#按照一列就行分组
df.groupby("name").count()    #只有对数据就行分类汇总计算之后才会展示出来,否则返回的知识一个dateframegroupby对象
df.groupby("age").sum()
#按照多列进行分组
df.groupby(["name","age"]).count()   #分组后对所有可计算列进行分类汇总
df.groupby(["name","age"]).sum()
df.groupby("客户分类")["用户ID"].count()   #先按照客户分类进行分组,然后把用户ID这一列取出来,在这一列的基础上进行计数汇总。

1.2分组键是series

#按照一个series进行分组
df.groupby(df["客户分类"]).count()
#按照多个series进行分组
df.groupby(df["客户分类"],df["区域"]).sum()
df.groupby(df["客户分类"])["用户ID"].count()  

1.3神奇的aggregate方法——一次可以使用多种汇总方式

df.group("客户分类").aggregate(["count","sum"])
df.groupby("客户分类").aggregate({"用户ID":"count","7月销量":"sum","8月销量":"sum"})

1.4对分组后的结果重置索引

df.group("客户分类").sum()
df.group("客户分类").sum().reset_inex()

1.5数据透视

pd.pivot_table()
#data:表示要做数据透视的整个表
#values:对应Excel中值的那个框
#index:对应Excel中行的那个框
#columns:对应Excel中列的那个框
#aggfunc:表示对values的计算类型
#fill_value表示对空值的填充值
#margins表示是否显示合计列
#dropna表示是否删除缺失值,如果为True则讲含有缺失值的一整行删除
#margins_name当显示合计列时,可命名合计列列名,默认为"All"
pd.pivot_table(df,values ="用户ID",columns = "区域",index = "客户分类",aggfunc = "count")
pd.pivot_table(df,values = "用户ID",columns = "区域",index = "客户分类",aggfunc = "count",,margins = True,margins_name = "合计") 
pd.pivot_table(df,values = "用户ID",columns = "区域",index = "客户分类",aggfunc = "count",,margins = True,fill_value = 0)   #填充缺失值
#对不同值进行不同汇总方式,通过字典传入
pd.pivot_table(df,values = ["用户ID","7月销量"],columns = "区域",index = "客户分类",aggfunc = {"用户ID":"count","7月销量":"sum"}).rest_index()
#为了方便分析和处理,通常对数据透视表的结果进行重置索引。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值