我需要计算数据帧中出现不同变量的次数。 以下是数据的表示:
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不同的计数。
答案 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)