Python 如果我只需要对一列应用不同的函数,是否可以在不列出所有列的情况下应用agg函数

Python 如果我只需要对一列应用不同的函数,是否可以在不列出所有列的情况下应用agg函数,python,pandas,aggregate-functions,Python,Pandas,Aggregate Functions,给定 我知道我们可以使用df.agg({'a':'sum','b':'mean','c':'max','d':'min})跨多个列应用多个函数 如果我只需要应用一个不同的函数,是否可以在不列出所有列的情况下执行此操作。类似于df.agg({'a':'sum',///df.columns[1://:'mean'})AFAIK,不,您需要显式列名作为键。但是,您可以按如下方式构建字典: df = pd.DataFrame(np.random.rand(4,4), columns=list('abcd

给定

我知道我们可以使用
df.agg({'a':'sum','b':'mean','c':'max','d':'min})
跨多个列应用多个函数


如果我只需要应用一个不同的函数,是否可以在不列出所有列的情况下执行此操作。类似于
df.agg({'a':'sum',///df.columns[1://:'mean'})

AFAIK,不,您需要显式列名作为键。但是,您可以按如下方式构建字典:

df = pd.DataFrame(np.random.rand(4,4), columns=list('abcd'))
df
        a           b           c           d
    0   0.569586    0.730646    0.070111    0.226699
    1   0.092704    0.828220    0.190215    0.644188
    2   0.815397    0.281504    0.690391    0.115763
    3   0.614022    0.303781    0.738919    0.551983

好的,不,您需要显式列名作为键。但是,您可以按如下方式构建字典:

df = pd.DataFrame(np.random.rand(4,4), columns=list('abcd'))
df
        a           b           c           d
    0   0.569586    0.730646    0.070111    0.226699
    1   0.092704    0.828220    0.190215    0.644188
    2   0.815397    0.281504    0.690391    0.115763
    3   0.614022    0.303781    0.738919    0.551983

函数还将获取列表作为参数。 所以你可以用

agg_dict = {'a':'sum'}
for c in df.columns[1:]: agg_dict[c] = 'mean'

df.groupby('some_columns').agg(agg_dict)

函数还将获取列表作为参数。 所以你可以用

agg_dict = {'a':'sum'}
for c in df.columns[1:]: agg_dict[c] = 'mean'

df.groupby('some_columns').agg(agg_dict)

感谢您提供的清洁解决方案!感谢您提供的清洁解决方案!