首页 > 后端开发 > Python教程 > 如何使用 Pandas GroupBy 检索分组统计数据(计数、平均值、中位数、最小值、最大值)?

如何使用 Pandas GroupBy 检索分组统计数据(计数、平均值、中位数、最小值、最大值)?

Patricia Arquette
发布: 2024-12-21 15:03:14
原创
873 人浏览过

How Can I Retrieve Group-Wise Statistics (Count, Mean, Median, Min, Max) Using Pandas GroupBy?

使用 Pandas GroupBy 检索分组统计

问题

给定一个 DataFrame df多列(col1、col2等),您想要计算对这些列中每个唯一的值组合进行分组统计,例如计数、平均值、中值、最小值和最大值。

Approach

Pandas 提供了全面的分组依据实现分组数据分析的功能。它允许您根据特定分组键聚合和转换数据。

Count

要获取每个组中的行数,请使用 .size() 方法。它返回一个包含每个唯一组的行数的系列。例如:

df.groupby(['col1', 'col2']).size()
登录后复制

要将Series转换为DataFrame,可以使用.reset_index(name='counts'):

df.groupby(['col1', 'col2']).size().reset_index(name='counts')
登录后复制

多项统计

要计算每个组的多个统计数据,请使用 .agg() 方法。您可以将要计算的统计信息指定为字典,其中列名作为键,聚合函数作为值。例如,要计算列 col3 和 col4 的平均值、中位数和最小值:

df.groupby(['col1', 'col2']).agg({
    'col3': ['mean', 'count'],
    'col4': ['median', 'min', 'count']
})
登录后复制

组合统计数据

要将不同的聚合组合到单个 DataFrame 中,您可以可以使用join方法。这允许您基于公共列合并多个 DataFrame。例如,要创建组合计数、平均值、中位数和最小值的结果:

counts = df.groupby(['col1', 'col2']).size().to_frame(name='counts')
counts.join(gb.agg({'col3': 'mean'}).rename(columns={'col3': 'col3_mean'})) \
      .join(gb.agg({'col4': 'median'}).rename(columns={'col4': 'col4_median'})) \
      .join(gb.agg({'col4': 'min'}).rename(columns={'col4': 'col4_min'})) \
      .reset_index()
登录后复制

以上是如何使用 Pandas GroupBy 检索分组统计数据(计数、平均值、中位数、最小值、最大值)?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板