2016-04-12 17 views
0

Aşağıda gösterildiği gibi bir pandas.DataFrame df var. İlk sütun otomatik oluşturulan dizinlerdir.DataFrame dilimleme ve varsayılan dizin

In[221]: df 
Out[220]: 
    name age sex  job 
0 John 15 M Student 
1 Mike 30 M  Labor 
2 Lily 41 F Student 
3 Dave 66 M  Labor 
4 Sam 23 F Scientist 
5 Luke 7 M  Labor 
6 Ellen 80 F  Labor 
7 Jacob 52 M  Actor 

Şimdi dilimlendikten sonra, varsayılan dizinler miras alınır.

In[225]: df_labor = df[df.job == 'Labor'] 
In[226]: df_labor 
Out[225]: 
    name age sex job 
1 Mike 30 M Labor 
3 Dave 66 M Labor 
5 Luke 7 M Labor 
6 Ellen 80 F Labor 

Otomatik oluşturulan dizinler bana bir şey ifade etmediğinden. Df_labor.ix [3] ['ile 3. (sıfır tabanlı) df_labor sırasını almaya çalıştığımda [1, 3, 5, 6] yerine [0, 1, 2, 3] yapın. ']' yerine 'Ellen' alabilirim?

cevap

0

Sen reset_index çağırmanız gerekir: Varsayılan olarak

df_labor = df[df.job == "Labor"].reset_index(drop = True) 
In [94]: df_labor    
Out[94]:     

    age job  name sex 
0 30 Labor Mike M 
1 66 Labor Dave M 
2 7 Labor Luke M 
3 80 Labor Ellen F 

, pandalar yeni dataframe bir sütun olarak eski dizini ekler. drop = True bu sütunu bırakır.