Article original : Data Analytics with Pandas – How to Drop a List of Rows from a Pandas Dataframe
Un DataFrame Pandas est une structure de données bidimensionnelle qui permet de stocker des données en lignes et en colonnes. Il est très utile lors de l'analyse de données.
Lorsque vous avez une liste d'enregistrements de données dans un DataFrame, vous pouvez avoir besoin de supprimer une liste spécifique de lignes en fonction des besoins de votre modèle et de vos objectifs lors de l'étude de vos analyses.
Dans ce tutoriel, vous apprendrez à supprimer une liste de lignes d'un DataFrame Pandas.
Pour apprendre à supprimer des colonnes, vous pouvez lire ici Comment supprimer des colonnes dans Pandas.
Comment supprimer une ligne ou une colonne dans un DataFrame Pandas
Pour supprimer une ligne ou une colonne dans un DataFrame, vous devez utiliser la méthode drop() disponible dans le DataFrame. Vous pouvez lire plus sur la méthode drop() dans la documentation ici.
Axe du DataFrame
- Les lignes sont désignées par
axis=0 - Les colonnes sont désignées par
axis=1
Étiquettes du DataFrame
- Les lignes sont étiquetées par le numéro d'index commençant par 0, par défaut.
- Les colonnes sont étiquetées par des noms.
Paramètres de la méthode Drop()
index- la liste des lignes à supprimeraxis=0- Marque les lignes dans le DataFrame à supprimerinplace=True- Effectue l'opération de suppression dans le même DataFrame, plutôt que de créer un nouvel objet DataFrame lors de l'opération de suppression.
Exemple de DataFrame Pandas
Notre DataFrame exemple contient les colonnes product_name, Unit_Price, No_Of_Units, Available_Quantity, et Available_Since_Date. Il contient également des lignes avec des valeurs NaN qui sont utilisées pour désigner les valeurs manquantes.
import pandas as pd
data = {"product_name":["Keyboard","Mouse", "Monitor", "CPU","CPU", "Speakers",pd.NaT],
"Unit_Price":[500,200, 5000.235, 10000.550, 10000.550, 250.50,None],
"No_Of_Units":[5,5, 10, 20, 20, 8,pd.NaT],
"Available_Quantity":[5,6,10,"Not Available","Not Available", pd.NaT,pd.NaT],
"Available_Since_Date":['11/5/2021', '4/23/2021', '08/21/2021','09/18/2021','09/18/2021','01/05/2021',pd.NaT]
}
df = pd.DataFrame(data)
df
Le DataFrame ressemblera à ceci :
| product_name | Unit_Price | No_Of_Units | Available_Quantity | Available_Since_Date | |
|---|---|---|---|---|---|
| 0 | Keyboard | 500.000 | 5 | 5 | 11/5/2021 |
| 1 | Mouse | 200.000 | 5 | 6 | 4/23/2021 |
| 2 | Monitor | 5000.235 | 10 | 10 | 08/21/2021 |
| 3 | CPU | 10000.550 | 20 | Not Available | 09/18/2021 |
| 4 | CPU | 10000.550 | 20 | Not Available | 09/18/2021 |
| 5 | Speakers | 250.500 | 8 | NaT | 01/05/2021 |
| 6 | NaT | NaN | NaT | NaT | NaT |
Et voilà, nous avons créé notre DataFrame exemple.
Après chaque opération de suppression, vous imprimerez le DataFrame en utilisant df, ce qui imprimera le DataFrame dans un format de tableau HTML régulier.
Vous pouvez lire ici comment Imprimer joliment un DataFrame pour imprimer le DataFrame dans différents formats visuels.
Ensuite, vous apprendrez à supprimer une liste de lignes dans différents cas d'utilisation.
Comment supprimer une liste de lignes par index dans Pandas
Vous pouvez supprimer une liste de lignes de Pandas en passant la liste des index à la méthode drop().
df.drop([5,6], axis=0, inplace=True)
df
Dans ce code,
[5,6]est l'index des lignes que vous souhaitez supprimeraxis=0indique que les lignes doivent être supprimées du DataFrameinplace=Trueeffectue l'opération de suppression dans le même DataFrame
Après avoir supprimé les lignes avec l'index 5 et 6, vous aurez les données suivantes dans le DataFrame :
| product_name | Unit_Price | No_Of_Units | Available_Quantity | Available_Since_Date | |
|---|---|---|---|---|---|
| 0 | Keyboard | 500.000 | 5 | 5 | 11/5/2021 |
| 1 | Mouse | 200.000 | 5 | 6 | 4/23/2021 |
| 2 | Monitor | 5000.235 | 10 | 10 | 08/21/2021 |
| 3 | CPU | 10000.550 | 20 | Not Available | 09/18/2021 |
| 4 | CPU | 10000.550 | 20 | Not Available | 09/18/2021 |
C'est ainsi que vous pouvez supprimer des lignes avec un index spécifique.
Ensuite, vous apprendrez à supprimer une plage d'index.
Comment supprimer des lignes par plage d'index dans Pandas
Vous pouvez également supprimer une liste de lignes dans une plage spécifique.
Une plage est un ensemble de valeurs avec une limite inférieure et une limite supérieure.
Cela peut être utile dans les cas où vous souhaitez créer un ensemble de données d'exemple en excluant des plages spécifiques de données.
Vous pouvez créer une plage de lignes dans un DataFrame en utilisant la méthode df.index(). Ensuite, vous pouvez passer cette plage à la méthode drop() pour supprimer les lignes comme montré ci-dessous.
df.drop(df.index[2:4], inplace=True)
df
Voici ce que fait ce code :
df.index[2:4]génère une plage de lignes de 2 à 4. La limite inférieure de la plage est inclusive et la limite supérieure de la plage est exclusive. Cela signifie que les lignes 2 et 3 seront supprimées et que la ligne 4 ne sera pas supprimée.inplace=Trueeffectue l'opération de suppression dans le même DataFrame
Après avoir supprimé les lignes dans la plage 2-4, vous aurez les données suivantes dans le DataFrame :
| product_name | Unit_Price | No_Of_Units | Available_Quantity | Available_Since_Date | |
|---|---|---|---|---|---|
| 0 | Keyboard | 500.00 | 5 | 5 | 11/5/2021 |
| 1 | Mouse | 200.00 | 5 | 6 | 4/23/2021 |
| 4 | CPU | 10000.55 | 20 | Not Available | 09/18/2021 |
C'est ainsi que vous pouvez supprimer la liste de lignes dans le DataFrame en utilisant sa plage.
Comment supprimer toutes les lignes après un index dans Pandas
Vous pouvez supprimer toutes les lignes après un index spécifique en utilisant iloc[].
Vous pouvez utiliser iloc[] pour sélectionner des lignes en utilisant leur index de position. Vous pouvez spécifier le début et la fin de la position séparés par un :. Par exemple, vous utiliserez 2:3 pour sélectionner les lignes de 2 à 3. Si vous souhaitez sélectionner toutes les lignes, vous pouvez simplement utiliser : dans iloc[].
Cela peut être utile dans les cas où vous souhaitez diviser l'ensemble de données à des fins d'entraînement et de test.
Utilisez le code suivant pour sélectionner les lignes de 0 à l'index 2. Cela entraîne la suppression des lignes après l'index 2.
df = df.iloc[:2]
df
Dans ce code, :2 sélectionne les lignes jusqu'à l'index 2.
C'est ainsi que vous pouvez supprimer toutes les lignes après un index spécifique.
Après avoir supprimé les lignes après l'index 2, vous aurez les données suivantes dans le DataFrame :
| product_name | Unit_Price | No_Of_Units | Available_Quantity | Available_Since_Date | |
|---|---|---|---|---|---|
| 0 | Keyboard | 500.0 | 5 | 5 | 11/5/2021 |
| 1 | Mouse | 200.0 | 5 | 6 | 4/23/2021 |
C'est ainsi que vous pouvez supprimer les lignes après un index spécifique.
Ensuite, vous apprendrez à supprimer des lignes avec des conditions.
Comment supprimer des lignes avec plusieurs conditions dans Pandas
Vous pouvez supprimer des lignes dans le DataFrame en fonction de conditions spécifiques.
Par exemple, vous pouvez supprimer des lignes où la valeur de la colonne est supérieure à X et inférieure à Y.
Cela peut être utile dans les cas où vous souhaitez créer un ensemble de données qui ignore les colonnes avec des valeurs spécifiques.
Pour supprimer des lignes en fonction de certaines conditions, sélectionnez l'index des lignes qui passent la condition spécifique et passez cet index à la méthode drop().
df.drop(df[(df['Unit_Price'] >400) & (df['Unit_Price'] < 600)].index, inplace=True)
df
Dans ce code,
(df['Unit_Price'] >400) & (df['Unit_Price'] < 600)est la condition pour supprimer les lignes.df[].indexsélectionne l'index des lignes qui passent la condition.inplace=Trueeffectue l'opération de suppression dans le même DataFrame plutôt que d'en créer un nouveau.
Après avoir supprimé les lignes avec la condition qui a le unit_price supérieur à 400 et inférieur à 600, vous aurez les données suivantes dans le DataFrame :
| product_name | Unit_Price | No_Of_Units | Available_Quantity | Available_Since_Date | |
|---|---|---|---|---|---|
| 1 | Mouse | 200.0 | 5 | 6 | 4/23/2021 |
C'est ainsi que vous pouvez supprimer des lignes dans le DataFrame en utilisant certaines conditions.
Conclusion
Pour résumer, dans cet article, vous avez appris ce qu'est la méthode drop() dans un DataFrame Pandas. Vous avez également vu comment les lignes et les colonnes du DataFrame sont étiquetées. Et enfin, vous avez appris à supprimer des lignes en utilisant des index, une plage d'index et en fonction de conditions.
Si vous avez aimé cet article, n'hésitez pas à le partager.