gpt4 book ai didi

python - 如何计算数据框行的标准偏差?

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:24 24 4
gpt4 key购买 nike

df:  

name group S1 S2 S3
A mn 1 2 8
B mn 4 3 5
C kl 5 8 2
D kl 6 5 5
E fh 7 1 3

output:

std (S1,S2,S3)
3.78
1
3
0.57
3.05

这对获取列的标准有效:

numpy.std(df['A'])

我想对行做同样的事情

最佳答案

您可以使用 DataFrame.std ,它省略了非数字列:

print (df.std())
S1 2.302173
S2 2.774887
S3 2.302173
dtype: float64

如果需要按列std:

print (df.std(axis=1))
0 3.785939
1 1.000000
2 3.000000
3 0.577350
4 3.055050
dtype: float64

如果只需要选择一些数字列,使用子集:

print (df[['S1','S2']].std())
S1 2.302173
S2 2.774887
dtype: float64

numpy.std 不同默认参数 ddof (Delta Degrees of Freedom):

  • Pandas 默认 ddof=1
  • 默认为 numpy ddof=0

所以有不同的输出:

#ddof=1
print (df.std(axis=1))
0 3.785939
1 1.000000
2 3.000000
3 0.577350
4 3.055050
dtype: float64

#ddof=0
print (np.std(df, axis=1))
0 3.091206
1 0.816497
2 2.449490
3 0.471405
4 2.494438
dtype: float64

但是你可以很容易地改变它:

#same output as pandas function
print (np.std(df, ddof=1, axis=1))
0 3.785939
1 1.000000
2 3.000000
3 0.577350
4 3.055050
dtype: float64

#same output as numpy function
print (df.std(ddof=0, axis=1))
0 3.091206
1 0.816497
2 2.449490
3 0.471405
4 2.494438
dtype: float64

关于python - 如何计算数据框行的标准偏差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38361022/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com