Comment supprimer une colonne sans nom dans Pandas DataFrame
Vous pouvez utiliser les deux méthodes suivantes pour supprimer une colonne dans un DataFrame pandas qui contient « Unnamed » dans le nom de la colonne :
Méthode 1 : supprimer la colonne sans nom lors de l’importation de données
df = pd.read_csv('my_data.csv', index_col=0)
Méthode 2 : supprimer la colonne sans nom après l’importation des données
df = df.loc[:, ~df.columns.str.contains('^Unnamed')]
Les exemples suivants montrent comment utiliser chaque méthode dans la pratique.
Exemple 1 : supprimer une colonne sans nom lors de l’importation de données
Supposons que nous créions un simple DataFrame pandas et que nous l’exportions vers un fichier CSV :
import pandas as pd
#create DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
'points': [4, 4, 6, 8, 9, 5],
'rebounds': [12, 7, 8, 8, 5, 11]})
#view DataFrame
print(df1)
team points rebounds
0 A 4 12
1 B 4 7
2 C 6 8
3 D 8 8
4 E 9 5
5 F 5 11
#export DataFrame to CSV file
df1.to_csv('my_data.csv')
Désormais, lorsque nous essayons de lire le fichier dans un DataFrame pandas, la première colonne porte le nom Sans nom : 0
#import CSV file df2 = pd.read_csv('my_data.csv') #view DataFrame print(df2) Unnamed: 0 team points rebounds 0 0 A 4 12 1 1 B 4 7 2 2 C 6 8 3 3 D 8 8 4 4 E 9 5 5 5 F 5 11
Pour éviter cela, nous pouvons spécifier index_col=0 pour indiquer aux pandas que la première colonne est en fait la colonne d’index :
#import CSV file df2 = pd.read_csv('my_data.csv', index_col=0) #view DataFrame print(df2) team points rebounds 0 A 4 12 1 B 4 7 2 C 6 8 3 D 8 8 4 E 9 5 5 F 5 11
Exemple 2 : supprimer la colonne sans nom après l’importation de données
Supposons que nous créions un simple DataFrame pandas et que nous l’exportions vers un fichier CSV :
import pandas as pd
#create DataFrame
df1 = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F'],
'points': [4, 4, 6, 8, 9, 5],
'rebounds': [12, 7, 8, 8, 5, 11]})
#export DataFrame to CSV file
df1.to_csv('my_data.csv')
Supposons maintenant que nous importions ce fichier dans un DataFrame pandas :
#import CSV file df2 = pd.read_csv('my_data.csv') #view DataFrame print(df2) Unnamed: 0 team points rebounds 0 0 A 4 12 1 1 B 4 7 2 2 C 6 8 3 3 D 8 8 4 4 E 9 5 5 5 F 5 11
Pour supprimer la colonne qui contient « Sans nom » dans le nom, nous pouvons utiliser la syntaxe suivante :
#drop any column that contains "Unnamed" in column name df2 = df2.loc[:, ~df2.columns.str.contains('^Unnamed')] #view updated DataFrame print(df2) team points rebounds 0 A 4 12 1 B 4 7 2 C 6 8 3 D 8 8 4 E 9 5 5 F 5 11
Notez que la colonne « Unnamed : 0 » a été supprimée du DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Comment supprimer la première ligne dans Pandas DataFrame
Comment supprimer la première colonne dans Pandas DataFrame
Comment supprimer les colonnes en double dans Pandas