我正在尝试进行自定义聚合(以及其他几个标准聚合)
大概是这样的:
df = pd.DataFrame(
[["red", 1, 10], ["red", 2, 20], ["green", 5, 15]],
columns=["color", "x", "y"]
)
df2 = (
df
.groupby(["color"])
.agg(amt1=("x", "sum"),
amt2=("x", "mean"),
amt3=("y", "sum"),
# this does not work...
amt4= (0.9 * (x.sum() - y.mean()) / x.max()) + 1
)
)
df2
谢谢你的帮助
我认为不可能直接在
agg
的自定义函数中使用两列,这里有两种选择。要么对这个特定的自定义函数使用apply
,要么对其他函数使用concat
,要么使用基于索引的选择只要索引在df中是唯一的,这两种方法都会给出相同的结果
要在新版本中使用选项2,需要正则函数bug description
相关问题 更多 >
编程相关推荐