栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Pandas中如何实现groupby分组统计

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Pandas中如何实现groupby分组统计

import numpy as np
import pandas as pd

"""
本节主要介绍pandas怎样实现groupby分组统计
1.分组使用聚合函数做数据统计
2.遍历groupby的结果理解执行流程
3.实例分组探索天气数据
"""
df = pd.DataFrame({
    'A':['foo','bar','foo','bar','foo','bar','foo','foo'],
    'B':['one','one','two','three','two','two','one','three'],
    'C':np.random.randn(8),
    'D':np.random.randn(8)
})
#print(df)

# 单个列groupby,查询所有数据列的统计
value_1 = df.groupby('A').sum()
#print(value_1)  # groupby中的A变成了数据的索引列,因为是sum,但B列不是数字,所以会被省略掉

# 多个列groupby,查询所有数据列的统计
value_2 = df.groupby(['A','B']).mean()
#print(value_2)

# 使A,B不会变成索引
value_3 = df.groupby(['A','B'],as_index=False).mean()

# 查看多种数据统计
value_4 = df.groupby('A').agg([np.mean,np.sum,np.std])
# print(value_4)

# 查看单列的结果数据统计
# 方法1:预过滤,性能更好
value_5 = df.groupby('A')['C'].agg([np.mean,np.sum,np.std])
# 方法2
value_6 = df.groupby('A').agg([np.sum,np.mean,np.std])['C']
#print(value_6)

# 不同列,使用不同的聚合函数
value_7 = df.groupby('A').agg({'C':np.sum,'D':np.mean})
#print(value_7)

# 二.遍历groupby的结果理解执行流程
# for循环可以直接遍历每个group
# 1.遍历单个列聚合的分组
g = df.groupby('A')
for name,group in g:
    pass
    # print(name)
    # print(group)
# 可以获取单个分组的数据
value_8 = g.get_group('bar')

# 2.遍历多个列聚合后的分组
g = df.groupby(['A','B'])
for name,group in g:
    pass
    #print(name)
    #print(group)
value_9 = g.get_group(('foo','one'))

# 可以直接查询group后的某几列,生成series或者dataframe
#print(g['C'])
for name,group in g['C']:
    pass
    #print(name)
    #print(type(group))
"""
其实所有的聚合统计,都是在dataframe和series上面进行的
"""

# 三.实例分组探索天气数据
fpath = './test.csv'
df = pd.read_csv(fpath)
# 替换掉温度符号C
df.loc[:,'bwendu'] = df['bwedu'].str.replace('C','').astype('int32')
df.loc[:,'ywendu'] = df['ywendu'].str.replace('C','').astype('int32')

# 新增一列为月份
df['month'] = df['ymd'].str[:7]

# 查看每个月的最高温度
value_9 = df.groupby('month')['bwendu'].max()

# 查看每个月的最高温度,最低温度,平均空气质量指数
value_10 = df.groupby('month').agg({'bwendu':np.max,'ywendu':np.min,'api':np.mean})

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822854.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号