使用 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中文网其他相关文章!