我将大型pandas数据框读取为table
。我想计算两个不同组CRPS
和Age
的均值和标准偏差,因此我可以在条形图中绘制它们,并将std偏差作为误差条。
我可以通过Age
列获得平均值。 我认为这是一个我必须构建的for循环,但我不知道如何进一步构建table["Age"].mean()
,这只是给出了所有数据点的平均值'年龄值。这是我需要一些指导的地方。我想查看组列,告诉它计算该组年龄的平均值和标准差。因此,例如,CRPS
组的年龄的平均值和标准差值。
我在下面的前25行只是为了显示数据帧的样子。我也导入了numpy as np
。
Group Age
0 CRPS 50
1 CRPS 59
2 CRPS 22
3 CRPS 48
4 CRPS 53
5 CRPS 48
6 CRPS 29
7 CRPS 44
8 CRPS 28
9 CRPS 42
10 CRPS 35
11 CONTROLS 54
12 CONTROLS 43
13 CRPS 50
14 CRPS 62
15 CONTROLS 64
16 CONTROLS 39
17 CRPS 40
18 CRPS 59
19 CRPS 46
20 CONTROLS 56
21 CRPS 21
22 CRPS 45
23 CONTROLS 41
24 CRPS 46
25 CONTROLS 35
答案 0 :(得分:0)
我认为你不需要for循环。
相反,您可以尝试以下方式:
table.iloc[table['Group'] == 'CRPS']['Age'].mean()
我还没有用你的桌子测试过,但我认为这样可行。
这个想法是首先创建一个布尔数组,对于组字段包含'CRPS'
的行索引是真的,然后使用iloc
选择所有这些行,最后取平均值。您可以通过以下方式迭代所有组:
mean_age = dict()
for group in set(table['Group']):
mean_age[group] = table.iloc[table['Group'] == group]['Age'].mean()
也许这就是您打算使用for循环的地方。