Python可扩展条件计数

时间:2017-11-19 08:08:46

标签: python pandas count conditional

我需要计算数据帧中出现不同变量的次数。 以下是数据的表示:

df = pd.DataFrame({'game_id': [1, 1, 1, 1, 1, 2, 2, 2, 2, 2], 
                   'event_num': list(range (0,10)), 
                   'event_cd': np.random.randint(25, size = 10)})

输出:

   event_cd  event_num  game_id
0        20          0        1
1         0          1        1
2        15          2        1
3         8          3        1
4        10          4        1
5        18          5        2
6        22          6        2
7         7          7        2
8         7          8        2
9        23          9        2

假设我有一个公式:

some_stat = (count(event_cd = 10) + count(event_cd = 14)) / count(event_cd = 2)

最有效的方法是什么?实际数据包含24个不同的event_cd,并包含大约50,000行。如果可能,计数也需要与game_id相对应,因此游戏1将具有与游戏2不同的计数。

1 个答案:

答案 0 :(得分:0)

我认为您需要sum的{​​{1}}:

boolean mask

如果还要计算每个群组使用groupby自定义功能:

some_stat = ((df.event_cd == 10).sum() + (df.event_cd == 14).sum()) /
             (df.event_cd == 2).sum()

print (some_stat)