Pandas: 获取聚合函数中的abs() mean()
Pandas: Get abs() mean() in Aggregate function
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)
很好,但我想在这里使用第 A
列的 abs(np.mean)
。是否可以将其定义为 my_agg
的一部分?什么是 dask 的解决方案?
是的,我们可以通过 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
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)
很好,但我想在这里使用第 A
列的 abs(np.mean)
。是否可以将其定义为 my_agg
的一部分?什么是 dask 的解决方案?
是的,我们可以通过 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