分组函数 groupby
效果就SQL里面的groupby,使用方法大致一样
df.groupby(["列名1","列名1"],as_index=True).sum()
先按照列名1进行分组,再按照列名2进行分组;
as_index默认值是True,效果是拿分组的数据作为行索引,如果为Fasle则用0,1作为行索引
分组并按照指定列进行计算
df.groupby(["列名1","列名1"]["指定计算的列名"]).sum()
加上指定的列名就能只对该列名进行计算
分组的迭代查看
多个列名为一组
for (k1,k2),group in df.groupby(["列名1","列名1"]):
print(k1,k2)
print(group)
(k1,k2)是分组后的组名,group是分组后的数据
分组后的聚合运算
df.groupby(["列名1","列名1"],as_index=True).agg(['sum','mean'])
此条语句能够在指定分组后使用sum函数求得总和值,使用mean函数求得均值
分组后的对不同列执行不同聚合函数操作
df.groupby(["列名1","列名1"],as_index=True).agg({”列名1“:['sum','mean'],"列名2":'['Max']})
此条语句能够在指定分组后对列名1的数据求总和值和均值,对列名2求最大值