通过熊猫操作按组访问特定的组

时间:2019-04-13 08:42:07

标签: python pandas group-by pandas-groupby

    A   B
0   1  12
1   1  13
2   1  15
3   2  16
4   2  19
5   2  20
6   3  32
7   3  29
8   3  25
9   4   3
10  4   5
11  4   7

我有一个如上所述的熊猫数据框。我想将“ A”列按1 2 3 4之类的值分组,并从第4组中减去所有组的B列的值。我该怎么做? >

我的结果应如下:

    
A   B   C
1   12  9
1   13  8
1   15  8
2   16  13
2   19  14
2   20  13
3   32  29
3   29  24
3   25  18
4   3   0
4   5   0
4   7   0

1 个答案:

答案 0 :(得分:5)

您可以使用groupbyapply。要获取A = 4的群组,请致电GroupBy.get_group(4)

g = df.groupby('A')
df['C'] = g.apply(lambda x: x['B'] - g.get_group(4)['B'].values).values
df

    A   B   C
0   1  12   9
1   1  13   8
2   1  15   8
3   2  16  13
4   2  19  14
5   2  20  13
6   3  32  29
7   3  29  24
8   3  25  18
9   4   3   0
10  4   5   0
11  4   7   0