Pandas Dataframe分组和标准偏差

时间:2016-12-07 10:19:24

标签: python pandas

给出以下格式的pandas数据帧:

GroupNo | at1 | at2 | at3   | at4 
1       | 0.02|1.12 | 1.88  | 3.2
1       | 6.11|1.13 | 0.88  | 5.2
4       | 2.02|1.16 | 2.88  | 0.2
3       | 0.20|0.12 | 1.48  | 1.25
2       | 0.02|1.12 | 1.88  | 1.4
3       | 3.02|1.12 | 1.98  | 2.2
3       | 0.40|0.18 | 1.48  | 1.25

我怎样才能找到每组的平均标准差?

例如,group by groupNo,找到该组编号中属性的标准偏差,找出它们的标准差的平均值

任何帮助都会很棒, ħ

1 个答案:

答案 0 :(得分:3)

我认为GroupBy.std需要DataFrame.mean

print (df.groupby('GroupNo').std())
              at1       at2       at3       at4
GroupNo                                        
1        4.306280  0.007071  0.707107  1.414214
2             NaN       NaN       NaN       NaN
3        1.573573  0.560833  0.288675  0.548483
4             NaN       NaN       NaN       NaN

print (df.groupby('GroupNo').std().mean(axis=1))
GroupNo
1    1.608668
2         NaN
3    0.742891
4         NaN
dtype: float64

或者可能需要:

print (df.groupby('GroupNo').mean().std(axis=1))
GroupNo
1    1.453848
2    0.788480
3    0.535371
4    1.149420
dtype: float64