我有一个大型的pandas会话数据框(大约100列):
session_init ID
0 1 675
1 MID 675
2 MID 675
3 MID 675
4 MID 675
5 MID 675
6 1 345
7 MID 345
8 MID 345
9 MID 345
10 MID 345
11 MID 345
12 MID 345
13 1 098
14 MID 098
15 1 675
16 MID 675
17 MID 675
18 MID 675
19 MID 675
20 MID 675
21 MID 675
22 1 098
23 MID 098
24 1 098
25 MID 098
如您在上面的熊猫数据框中所看到的,seassion开始标有1
。是否有任何熊猫函数可以让我计算每个会话的价值计数?例如,在上述数据框中,675
ID已开始会话2次。因此,值计数应为:
675 : 2
345 : 1
098 : 3
答案 0 :(得分:3)
第一个过滤器仅显示“ 1”值。然后groupby
的ID列和count
的每个实例
df[df.session_init == "1"].groupby('ID').count()
session_init
ID
98 3
345 1
675 2
答案 1 :(得分:3)
仅使用value_counts()
进行此操作可能会更快:
df.loc[df.session_init == '1', 'ID'].value_counts()
98 3
675 2
345 1