Cours
Il arrive souvent qu'un DataFrame contienne des colonnes qui ne sont pas utiles à votre analyse. Ces colonnes doivent être supprimées du DataFrame pour vous permettre de vous concentrer plus facilement sur les autres colonnes.
Les colonnes peuvent être supprimées en spécifiant les noms des étiquettes et les axes correspondants, ou en spécifiant directement les noms des index ou des colonnes. Lors de l'utilisation d'un index multiple, les étiquettes situées à différents niveaux peuvent être supprimées en spécifiant le niveau.
.drop() Méthode
Comparons le nombre de valeurs manquantes avec la forme du DataFrame. Vous remarquerez que la colonne county_name contient autant de valeurs manquantes que de lignes, ce qui signifie qu'elle ne contient que des valeurs manquantes.
ri.isnull().sum()
state 0
stop_date 0
stop_time 0
county_name 91741
driver_gender 5205
driver_race 5202
...
ri.shape
91741, 15
Comme elle ne contient aucune information utile, cette colonne peut être supprimée à l'aide de la méthode .drop().
Outre le nom de la colonne, vous devez préciser que vous supprimez des colonnes de l'axe des colonnes et que vous souhaitez que l'opération se produise à la place, ce qui évite l'utilisation d'une instruction d'affectation, comme indiqué ci-dessous :
ri.drop('county_name',
axis='columns', inplace=True)
.dropna() Méthode
La méthode .dropna() est un excellent moyen de supprimer des lignes en fonction de la présence de valeurs manquantes dans cette ligne.
Par exemple, en utilisant l'ensemble de données ci-dessus, supposons que les colonnes stop_date et stop_time sont essentielles à notre analyse et qu'une ligne est donc inutile sans ces données.
ri.head()
state stop_date stop_time driver_gender driver_race
0 RI 2005-01-04 12:55 M White
1 RI 2005-01-23 23:15 M White
2 RI 2005-02-17 04:15 M White
3 RI 2005-02-20 17:15 M White
4 RI 2005-02-24 01:20 F White
Nous pouvons demander à pandas de supprimer toutes les lignes qui ont une valeur manquante dans la colonne stop_date ou stop_time. Comme nous spécifions un sous-ensemble, la méthode .dropna() ne prend en compte que ces deux colonnes pour décider des lignes à supprimer.
ri.dropna(subset=['stop_date', 'stop_time'], inplace=True)
Exemple interactif d'élimination de colonnes
Dans cet exemple, vous laisserez de côté la colonne county_name parce qu'elle ne contient que des valeurs manquantes, et vous laisserez de côté la colonne state parce que tous les contrôles routiers ont eu lieu dans un seul État (Rhode Island). Ces colonnes peuvent donc être supprimées car elles ne contiennent aucune information utile. Le nombre de valeurs manquantes dans chaque colonne a été imprimé sur la console.
- Examinez le site
.shapedu DataFrame pour connaître le nombre de lignes et de colonnes. - Supprimez les colonnes
county_nameetstateen transmettant les noms des colonnes à la méthode.drop()sous la forme d'une liste de chaînes de caractères. - Examinez à nouveau le site
.shapepour vérifier qu'il y a maintenant deux colonnes de moins.
# Examine the shape of the DataFrame
print(ri.shape)
# Drop the 'county_name' and 'state' columns
ri.drop(['county_name', 'state'], axis='columns', inplace=True)
# Examine the shape of the DataFrame (again)
print(ri.shape)
Lorsque vous exécutez le code ci-dessus, vous obtenez le résultat suivant :
(91741, 15)
(91741, 13)
Pour en savoir plus sur l'abandon de colonnes dans pandas, veuillez consulter cette vidéo tirée de notre cours Introduction à la visualisation de données avec ggplot2.
Ce contenu est extrait du cours Introduction à la visualisation de données avec ggplot2 de DataCamp par Kevin Markham.
Consultez notre tutoriel Pandas Add Column.