如何计算数据帧的行的标准偏差?
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
这是工作越来越STD为列:如何计算数据帧的行的标准偏差?
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
(自由三角洲度):默认情况下
- 大熊猫
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
回答:
当你不能在行任何你可以列做你可以使用“转”
np.std(df.transpose()['S1'])
以上是 如何计算数据帧的行的标准偏差? 的全部内容, 来源链接: utcz.com/qa/261765.html