美文网首页
7 pandas 怎么实现分组数据统计

7 pandas 怎么实现分组数据统计

作者: avyhlj | 来源:发表于2020-08-11 20:08 被阅读0次

1, 知识点总结
单个聚合函数

 df.groupby('a').sum() 

多个聚合函数

df.groupby('a').agg([np.sum,np.mean]) #2个聚合函数适用于所有数值列
df.groupby('a').agg({'b':np.sum,'c':np.mean}) #针对不同列使用不同聚合函数 

2,数据输入

tianqi = pd.read_excel('./tianqi.xlsx')
tianqi['bWendu'] = tianqi['bWendu'].str.replace('℃','').astype('int32')
tianqi['yWendu'] = tianqi['yWendu'].str.replace('℃','').astype('int32')
df = tianqi
0.png

3,groupby后使用聚合函数

#单列
df.groupby('tianqi').mean()

#多列
df.groupby(['tianqi','fengxiang']).mean()
df_groupby = df.groupby(['tianqi','fengxiang'],as_index=False).mean()

#同时使用多种函数 
df.groupby('tianqi').agg([np.mean,np.max])

#查看单列的统计结果 
df.groupby('tianqi')['bWendu'].agg([np.mean,np.max])
df.groupby('tianqi').agg([np.mean,np.max])['bWendu']

#不同列使用不同聚合函数 
df.groupby('tianqi').agg({'bWendu':np.max,'yWendu':np.min})

4,遍历groupby的结果理解流程

#单个列
g = df.groupby('tianqi')

for name,group in g:
    print(name)
    print(group)
    print('***********')

    #取得单个组 
g.get_group('雷阵雨')

#多个列
gs = df.groupby(['fengxiang','fengli'])

for name,group in gs:
    print(name)
    print(group)
    print('***********')

    #取得单个组 
gs.get_group(('西风','微风'))

5,plot

df['month'] =df['ymd'].apply(lambda x: str(x)[:7])

#每个月的最高温
data = df.groupby('month')['bWendu'].max()
data.plot()

#每个月的最高温、最低温
data = df.groupby('month').agg({'bWendu':np.max,'yWendu':np.min})
data.plot()
每月最高、低温.png 每月最高温.png

相关文章

网友评论

      本文标题:7 pandas 怎么实现分组数据统计

      本文链接:https://www.haomeiwen.com/subject/qtaydktx.html