Python 如何在groupby中使用字符串“mean”或“sum”使其成为动态的?
我有一本字典:Python 如何在groupby中使用字符串“mean”或“sum”使其成为动态的?,python,pandas,group-by,Python,Pandas,Group By,我有一本字典: dict = { "A": ("a", "mean"), "B": ("b", "sum")} 我想对每个键使用以下功能: for i in dict.keys(): df.groupby(i)[dict[i][0]].sum() or df.groupby(i)[dict[i][0]].mean() 如何替换硬编码的总和或
dict = { "A": ("a", "mean"),
"B": ("b", "sum")}
我想对每个键使用以下功能:
for i in dict.keys():
df.groupby(i)[dict[i][0]].sum()
or
df.groupby(i)[dict[i][0]].mean()
如何替换硬编码的总和或平均值,使其使用字典中给出的内容?
大概是这样的:
df.groupby(i)[dict[i][0]].dict[i][1]()
因为它们只是字符串sum,mean,这是有效的函数名,所以可以使用agg或apply按原样传递它们。此外,您还可以重写代码,使其更具可读性:
# Please please do not use `dict` as a variable
for k, (col,op) in your_dict.items():
df.groupby(k)[col].agg(op)
agg函数适用于此。使用示例如下:
我的字典={A:A,意思是,
B:B,sum}
对于集合集合、集合集合集合、集合集合集合功能,在我的目录项中:
df.groupbycol_for_group[col_for_agg].aggg_func
不建议使用保留名称(如dict datatype)作为变量名