相关疑难解决方法(0)

使用pandas GroupBy.agg()对同一列进行多次聚合

给出以下(完全矫枉过正的)数据框示例

import pandas as pd
import datetime as dt
df = pd.DataFrame({
         "date"    :  [dt.date(2012, x, 1) for x in range(1, 11)], 
         "returns" :  0.05 * np.random.randn(10), 
         "dummy"   :  np.repeat(1, 10)
})
Run Code Online (Sandbox Code Playgroud)

是否存在将两个不同的聚合函数应用于同一列的现有内置方法,而无需agg多次调用?

语法上错误但直观正确的方法是:

# Assume `function1` and `function2` are defined for aggregating.
df.groupby("dummy").agg({"returns":function1, "returns":function2})
Run Code Online (Sandbox Code Playgroud)

显然,Python不允许重复键.是否还有其他表达输入的方式agg?也许一个元组列表[(column, function)]会更好,允许多个函数应用于同一列?但它似乎只接受一本字典.

除了定义一个仅应用其中的两个函数的辅助函数之外,还有一个解决方法吗?(无论如何,它如何与聚合一起工作?)

python aggregate dataframe pandas pandas-groupby

95
推荐指数
3
解决办法
5万
查看次数

标签 统计

aggregate ×1

dataframe ×1

pandas ×1

pandas-groupby ×1

python ×1