给出以下格式的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,找到该组编号中属性的标准偏差,找出它们的标准差的平均值
任何帮助都会很棒, ħ
答案 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