2017-05-01 3 views
1

Compte tenu d'une dfIndex rang dataframe pandas géants

in[0]df1 
out[0] 
     DATE REVENUE COST POSITION 
FACTOR 
0 2017/01/01 1000 900 10 
1 2017/01/01 900  700 9 
2 2017/01/01 1100 800 7 

J'ai une ligne FACTOR supplémentaire. Après avoir essayé reset_index() et d'autres façons, je ne peux pas supprimer l'index multi (ligne) FACTOR. Y a-t-il un moyen de le faire?

Je sais qu'il est courant de supprimer des colonnes et de réinitialiser l'index, mais pas de cette façon.

Répondre

4

J'espère que cela fonctionne :)

df.reset_index(inplace=True) # Resets the index, makes factor a column 
df.drop("Factor",axis=1,inplace=True) # drop factor from axis 1 and make changes permanent by inplace=True 
3

Essayez d'utiliser:

df1.reset_index(drop=True) 

Cela permet de réinitialiser l'index à l'index entier par défaut et supprime l'original. Si vous souhaitez attribuer ce changement à l'original dataframe il est plus facile à utiliser:

df1.reset_index(drop=True, inplace=True) 

Comme il éditera sans faire une copie du df1 dataframe.

2

FACTOR est le nom de l'index - ne vous inquiétez pas à ce sujet - il ne touche pas vos données:

In [78]: df 
Out[78]: 
       DATE REVENUE COST POSITION 
FACTOR 
10  2017/01/01  1000 900  10 
11  2017/01/01  900 700   9 
12  2017/01/01  1100 800   7 

In [79]: df.index.name 
Out[79]: 'FACTOR' 

Si vous souhaitez renommer ou de se débarrasser de celui-ci (en préservant la valeurs index), vous pouvez utiliser la méthode DataFrame.rename_axis():

In [80]: df = df.rename_axis(None) 

In [81]: df 
Out[81]: 
      DATE REVENUE COST POSITION 
10 2017/01/01  1000 900  10 
11 2017/01/01  900 700   9 
12 2017/01/01  1100 800   7 

In [82]: df.index.name is None 
Out[82]: True