2016-04-14 35 views
1

df.iloc[i] Kullanarak ith satırına erişebilirim. Bu bilgiyi içeren bir sütun oluşturmak istiyorum.Pandalar: Mağaza "satır sayısı"

(Örneğin, ilgili bir ölçüt sonra sıralandıktan sonra), bu bilgileri nasıl saklayabilirim?

Girdi:

  col1 
    myIndex 
    12123 a 
    11123 b 
    10231 a 

Beklenen çıkış Optimal

  col1 iloc 
    myIndex 
    12123 a  0 
    11123 b  1 
    10231 a  2 

çözelti, aynı zamanda df.groupby göre, farklı gruplar için uygulanabilir olduğu.

+0

değil Can sadece indeksi n endeksi? df ['iloc'] = np.arange (len (df)) 'çalışmıyor? – EdChum

cevap

1

Sen range kullanabilirsiniz:

df['iloc'] = range(len(df)) 
print df 
     col1 iloc 
myIndex   
12123  a  0 
11123  b  1 
10231  a  2 

Ya np.arange sözü EdChum olarak:

df['iloc'] = np.arange(len(df)) 
print df 
     col1 iloc 
myIndex   
12123  a  0 
11123  b  1 
10231  a  2 

Eğer groupby kullanım cumcount tarafından saklayın gerekirse:

print df 

     col1 col2 
myIndex   
12123  a  1 
11123  b  2 
10231  a  3 
10233  b  3 

df['iloc'] = range(len(df)) 

df['iloc_groups'] = df.groupby('col1', sort=False)['col1'].cumcount() 
print df 
     col1 col2 iloc iloc_groups 
myIndex        
12123  a  1  0   0 
11123  b  2  1   0 
10231  a  3  2   1 
10233  b  3  3   1