计算包含pandas数据帧中某些字符串的行的平均/标准偏差

时间:2018-03-18 03:22:56

标签: python pandas

我将大型pandas数据框读取为table。我想计算两个不同组CRPSAge的均值和标准偏差,因此我可以在条形图中绘制它们,并将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

1 个答案:

答案 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循环的地方。