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)
感谢您提供的清洁解决方案!感谢您提供的清洁解决方案!