熊猫:在聚合函数中获取abs()mean()

时间:2020-08-24 00:21:32

标签: python-3.x pandas pandas-groupby dask dask-dataframe

From the docs可以.aggregate这样的dataframe.groupby对象:

df = pd.DataFrame([[1, 2, 3],
                   [-4, 5, 6],
                   [7, 8, 9],
                   [np.nan, np.nan, np.nan]],
                  columns=['A', 'B', 'C'])

,然后像这样aggregate

my_agg = {'A' : ['mean', 'min'], 'B' : ['mean', 'max']}
df.agg(my_agg)

很好,但是我想在这里使用列abs(np.mean)的{​​{1}}。是否可以将其定义为A的一部分?有什么解决方案?

1 个答案:

答案 0 :(得分:3)

是的,我们可以通过lambda

my_agg = {'A' : ['mean', 'min', lambda x : abs(x.mean())], 'B' : ['mean', 'max']}
df.agg(my_agg)
Out[194]: 
                 A    B
<lambda>  1.333333  NaN
max            NaN  8.0
mean      1.333333  5.0
min      -4.000000  NaN