Pandas数据框分组和标准差

3
给定以下格式的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

如何找到每个分组的平均标准差?

例如,按groupNo分组,找到该组编号中属性的标准差,然后找到这些标准差的平均值。

任何帮助都会很棒, H

1个回答

6

我认为您需要使用GroupBy.stdDataFrame.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

谢谢,这个std()计算中会包括组号吗? - H. Lewis
不,你可以通过print(df.groupby('GroupNo')['at1','at2','at3','at4'].std())进行测试。 - jezrael
1
groupby('GroupNo').std().mean(axis=1)和df.groupby('GroupNo').mean().std(axis=1)之间有什么区别?groupby.std.mean表示均值的标准差,而groupby.mean.std表示值的平均标准差。 - Elham

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接