2016-06-23 17 views
9

निम्न डेटा फ्रेम को देखते हुए भीतर पंक्तियाँ:पांडा संख्या समूह

import pandas as pd 
import numpy as np 
df=pd.DataFrame({'A':['A','A','A','B','B','B'], 
       'B':['a','a','b','a','a','a'], 
       }) 
df 

    A B 
0 A a 
1 A a 
2 A b 
3 B a 
4 B a 
5 B a 

मैं स्तंभ 'सी', बनाना चाहते हैं, जो संख्या कॉलम A प्रत्येक समूह के भीतर पंक्तियों और इस तरह बी:

A B C 
0 A a 1 
1 A a 2 
2 A b 1 
3 B a 1 
4 B a 2 
5 B a 3 

मैं इस की कोशिश की है अब तक:

df['C']=df.groupby(['A','B'])['B'].transform('rank') 

... लेकिन कोई पासा! अग्रिम धन्यवाद!

उत्तर

16

उपयोग groupby/cumcount:

In [25]: df['C'] = df.groupby(['A','B']).cumcount()+1; df 
Out[25]: 
    A B C 
0 A a 1 
1 A a 2 
2 A b 1 
3 B a 1 
4 B a 2 
5 B a 3 
संबंधित मुद्दे