如何基于熊猫数据框的值沿行计数?

时间:2018-06-22 13:07:20

标签: python python-3.x pandas

我有一个大型的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

2 个答案:

答案 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
相关问题