使用 Pandas GroupBy.agg() 在同一列上进行多个聚合
使用 Pandas 时,通常需要对同一列。虽然直观,但在 agg() 方法中多次指定同一列的直接方法在语法上并不正确。这就引出了如何使用 GroupBy.agg() 有效且简洁地将不同聚合函数应用于单个列的问题。
解决方案
截至 2022-06- 20、多重聚合的推荐做法是使用字典语法:
df.groupby('dummy').agg({ 'returns': {'Mean': np.mean, 'Sum': np.sum} })
在此例如,“returns”列与平均值和总和函数一起聚合。生成的 DataFrame 将包含两个新列“Mean”和“Sum”,它们显示各自的聚合。
历史记录
采用字典之前语法上,多重聚合有两种替代方法:
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
此方法将函数作为列表直接传递给 agg()。 DataFrame 将包含两个新列,分别包含平均值和总和聚合的结果。
df.groupby('dummy').agg({'returns': {'f1': np.mean, 'f2': np.sum}})
与列表方法类似,函数作为字典中的字典传递。内部字典的键指定函数名称,而值是聚合函数。 DataFrame 将为每个指定的函数名称有一列。
以上是如何使用 Pandas GroupBy.agg() 在单个列上执行多个聚合?的详细内容。更多信息请关注PHP中文网其他相关文章!