在agg中的'std'中指定ddof[重复]

问题描述 投票:0回答:1

例如,如果我有一个 pandas 数据框并正在执行各种聚合

df = pd.DataFrame({'a': [1,1,2], 'b': [4,5,6]})

df.groupby('a').agg({'b': ['sum', 'mean', 'std']})
    b
  sum mean       std
a
1   9  4.5  0.707107
2   6  6.0       NaN

那么如何指定

ddof
std

我知道我可以在执行

df.groupby('a')['b'].std(ddof=0)
时执行此操作,但是如何在指定多个聚合的
.agg
中执行此操作?还是没有办法?


Pandas dataframe groupby 中建议的用于计算总体标准差的解决方案不合适,因为它会发出警告

<ipython-input-25-3ae33ed0991c>:1: FutureWarning: The provided callable <function std at 0x7f528458cd60> is currently using SeriesGroupBy.std. In a future version of pandas, the provided callable will be used directly. To keep current behavior pass the string "std" instead.
python pandas
1个回答
0
投票

使用自定义(命名)函数:

def std(x):
    return x.std(ddof=0)

df.groupby('a').agg({'b': ['sum', 'mean', std]})

输出:

    b          
  sum mean  std
a              
1   9  4.5  0.5
2   6  6.0  0.0
© www.soinside.com 2019 - 2024. All rights reserved.