Comment supprimer la colonne d’index dans Pandas (avec exemples)
Parfois, vous souhaiterez peut-être supprimer la colonne d’index d’un DataFrame pandas en Python.
Étant donné que les pandas DataFrames et Series ont toujours un index, vous ne pouvez pas réellement supprimer l’index, mais vous pouvez le réinitialiser en utilisant le morceau de code suivant :
df.reset_index(drop=True, inplace=True)
Par exemple, supposons que nous ayons le DataFrame pandas suivant avec un index de lettres :
import pandas as pd #create DataFrame df = pd.DataFrame({'points': [25, 12, 15, 14, 19, 23, 25, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #set index of DataFrame to be random letters df = df.set_index([pd.Index(['a', 'b', 'd', 'g', 'h', 'm', 'n', 'z'])]) #display DataFrame df points assists rebounds a 25 5 11 b 12 7 8 d 15 7 10 g 14 9 6 h 19 12 6 m 23 9 5 n 25 9 9 z 29 4 12
Nous pouvons utiliser la fonction reset_index() pour réinitialiser l’index afin qu’il soit une liste séquentielle de nombres :
#reset index df.reset_index(drop=True, inplace=True) #display DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12
Notez que l’index est désormais une liste de nombres allant de 0 à 7.
Comme mentionné précédemment, l’index n’est pas réellement une colonne. Ainsi, lorsque l’on utilise la commande shape , on constate que le DataFrame comporte 8 lignes et 3 colonnes (au lieu de 4 colonnes) :
#find number of rows and columns in DataFrame df.shape (8, 3)
Bonus : supprimez l’index lors de l’importation et de l’exportation
Souvent, vous souhaiterez peut-être réinitialiser l’index d’un DataFrame pandas après l’avoir lu à partir d’un fichier CSV. Vous pouvez rapidement réinitialiser l’index lors de son importation en utilisant le morceau de code suivant :
df = pd.read_csv('data.csv', index_col=False)
Et vous pouvez vous assurer qu’une colonne d’index n’est pas écrite dans un fichier CSV lors de l’exportation en utilisant le morceau de code suivant :
df.to_csv('data.csv', index=False)
Ressources additionnelles
Comment définir la colonne comme index dans Pandas
Comment supprimer des lignes avec des valeurs NaN dans Pandas
Comment trier les valeurs dans un DataFrame Pandas