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()
#为了方便分析和处理,通常对数据透视表的结果进行重置索引。