在子组熊猫中计数的列

Mir*_*ekG 0 python grouping pandas

我有一个 df

df1
    a   b                                  
4   0   1      
5   0   1      
6   0   2      
2   0   3          
3   1   2   
15  1   3   
12  1   3   
13  1   1     
15  3   1   
14  3   1   
8   3   3   
9   3   2   
10  3   1  
Run Code Online (Sandbox Code Playgroud)

df 应该按 a 和 b 分组,我需要一个 c 列,该列从 1 上升到 a 的子组内的组数

df1
    a   b  c                                
4   0   1  1    
5   0   1  1    
6   0   2  2    
2   0   3  3        
3   1   2  1 
15  1   3  2 
12  1   3  2 
13  1   1  3   
15  3   1  1 
14  3   1  1 
8   3   3  2 
9   3   2  3 
10  3   1  4
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

WeN*_*Ben 7

我们可以做到groupby+transform factorize

df['C']=df.groupby('a').b.transform(lambda x : x.factorize()[0]+1)
4     1
5     1
6     2
2     3
3     1
15    2
12    2
13    3
15    1
14    1
8     1
9     1
10    2
Name: b, dtype: int64
Run Code Online (Sandbox Code Playgroud)