给定以下(完全过大的)数据帧示例
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)
})
是否有一种现有的内置方法将两个不同的聚合函数应用于同一列,而无需agg多次调用?
语法上错误但直观上正确的方法是:
# Assume `function1` and `function2` are defined for aggregating.
df.groupby("dummy").agg({"returns":function1, "returns":function2})
显然,Python不允许重复的键。还有其他表达方式agg吗?也许元组列表[(column, function)]可以更好地工作,以允许将多个函数应用于同一列?但似乎它只接受字典。
除了定义仅在其中应用两个功能的辅助功能之外,是否还有其他解决方法?(无论如何,这如何与聚合一起使用?)
慕森王
慕运维8079593
相关分类