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)作为变量名