我试图使用groupby和np.std来计算标准差,但似乎它正在计算样本标准差(自由度为1)。
这里是一个示例。
#create dataframe
>>> df = pd.DataFrame({'A':[1,1,2,2],'B':[1,2,1,2],'values':np.arange(10,30,5)})
>>> df
A B values
0 1 1 10
1 1 2 15
2 2 1 20
3 2 2 25
#calculate standard deviation using groupby
>>> df.groupby('A').agg(np.std)
B values
A
1 0.707107 3.535534
2 0.707107 3.535534
#Calculate using numpy (np.std)
>>> np.std([10,15],ddof=0)
2.5
>>> np.std([10,15],ddof=1)
3.5355339059327378
有没有一种方法可以在groupby语句中使用总体标准差计算(ddof = 0)? 我正在使用的记录不是样本(不是上面的示例表格),因此我只对总体标准差感兴趣。