2016-04-14 3 views
1

Использование df.iloc[i] Я могу получить доступ к строке ith. Я хотел бы создать столбец, содержащий эту информацию.Pandas: Store "row count"

(Например, после сортировки по соответствующему критерию), как я могу хранить эту информацию?

Входной сигнал:

  col1 
    myIndex 
    12123 a 
    11123 b 
    10231 a 

Ожидаемые результаты

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

Оптимально, решение также реализуемо для различных групп, в соответствии с df.groupby.

+0

Не можешь просто добавьте индекс как n индекс? не будет 'df ['iloc'] = np.arange (len (df))' работать? – EdChum

ответ

1

Вы можете использовать range:

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

Или np.arange как упомянуто EdChum:

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

Если вам необходимо хранить его groupby использования cumcount:

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