前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据分组技术GroupBy和数据聚合Aggregation

数据分组技术GroupBy和数据聚合Aggregation

作者头像
慕白
发布2020-01-02 13:38:41
1.8K0
发布2020-01-02 13:38:41
举报

数据分组技术GroupBy和数据聚合Aggregation

数据概览

其中包括四行:日期、城市、温度、风力。它的大小为20行。

按列分组

加入这里按照city这一列进行分组:

g = df.groupby(df['city'])

12

g = df.groupby(df['city'])

得到一个DataFrameGroupBy 类型的对象: <pandas.core.groupby.DataFrameGroupBy object at 0x10d45a128>

查看分组信息

g.groups

12

g.groups

g.get_group('BJ') # 查看某一个分组

12

g.get_group('BJ')      # 查看某一个分组

他相当于把city为BJ的行都过滤出来,并形成了一个新的dataframe

分组计算

df_bj = g.get_group('BJ') df_bj.mean() # 将北京的行求平均 g.mean() # 对整个表求平均 g.max() # 对整个表求最大值 g.min() # 对整个表求最小值

123456

df_bj = g.get_group('BJ')df_bj.mean()       # 将北京的行求平均g.mean()           # 对整个表求平均g.max()            # 对整个表求最大值g.min()            # 对整个表求最小值

GroupBy的操作过程

以求平均值为例: GroupBy对一个group中的某一组取平均值,得到的结果为series,而对整个分组对象取平均值,得到的是dataframe。所以对整个分组对象取平均值的过程就是分别对每一组取平均值然后combine。

分组对象转化为列表和字典

转换成列表直接通过list方法,然后每一个分组就是字典中的一个元素:

dict(list(g)) # 所有分组 dict(list(g))['BJ'] # 按照BJ分组

123

dict(list(g))           # 所有分组dict(list(g))['BJ']     # 按照BJ分组

转换成字典需要先通过list转换成列表然后通过dict转换成字典,其中key就是分组指定的依据(city),value是一个dataframe:

dict(list(g)) dict(list(g))['BJ']

123

dict(list(g))dict(list(g))['BJ']

遍历DataFrameGroupBy对象中的数据:

for name, group_df in g: print(name) print(group_df) //类似于SQL中的 select * from table_1 group by column_1

1234567

for name, group_df in g:    print(name)    print(group_df) //类似于SQL中的select * from table_1 group by column_1

数据聚合Aggregation

可以通过agg方法传入需要使用的聚合的函数,来对数据进行聚合:

g.agg('min') g.agg('max') g.agg('describe')

1234

g.agg('min')g.agg('max')g.agg('describe')

也可以通过传入自定义的聚合函数来得到聚合的结果:

def foo(attr): return attr.max() - attr.min() g.agg(foo)

1234

def foo(attr):    return attr.max() - attr.min()g.agg(foo)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据分组技术GroupBy和数据聚合Aggregation
    • 数据概览
      • 按列分组
        • 查看分组信息
          • 分组计算
            • GroupBy的操作过程
              • 分组对象转化为列表和字典
                • 遍历DataFrameGroupBy对象中的数据:
                  • 数据聚合Aggregation
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档