处理数据时,通常需要分析和比较不同组的统计数据。 Pandas 是一个用于数据操作的著名 Python 库,它提供了 GroupBy 功能来轻松执行这些操作。
获取每个组的行计数的最简单方法是通过.size() 方法。此方法返回包含分组计数的 Series:
df.groupby(['col1','col2']).size()
以表格格式检索计数(即,作为具有“计数”列的 DataFrame):
df.groupby(['col1', 'col2']).size().reset_index(name='counts')
要计算多个统计数据,请使用 .agg() 方法和字典。键指定要计算的列,而值是所需聚合的列表(例如“平均值”、“中位数”和“计数”):
df.groupby(['col1', 'col2']).agg({ 'col3': ['mean', 'count'], 'col4': ['median', 'min', 'count'] })
为了更好地控制输出,可以加入单独的聚合:
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()
这会生成一个更加结构化的 DataFrame未嵌套的列标签。
在提供的示例中,空值可能会导致用于不同计算的行计数出现差异。这强调了在解释分组统计数据时考虑空值的重要性。
以上是如何在 Python 中使用 Pandas GroupBy 计算分组统计数据?的详细内容。更多信息请关注PHP中文网其他相关文章!