如何计算数据帧的行的标准偏差?

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

回到顶部