Original article: 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 vous permet de stocker des données en lignes et en colonnes. Il est très utile lorsque vous analysez des données.
Lorsque vous avez une liste d'enregistrements de données dans un Dataframe, vous pouvez avoir besoin de déposer 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.
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. Pour en savoir plus sur la méthode drop()
, consultez la documentation ici.
Axe du Dataframe
- Les lignes sont indiquées en utilisant
axis=0
- Les colonnes sont désignées par
axis=1
Étiquettes du Dataframe
- Les lignes sont étiquetées à l'aide du numéro d'index commençant par 0, par défaut.
- Les colonnes sont étiquetées à l'aide de noms.
Paramètres de la méthode drop()
index
- la liste des lignes à supprimeraxis=0
- Marque les lignes du Dataframe à supprimer.inplace=True
- Effectue l'opération de suppression dans le même Dataframe, plutôt que de créer un nouvel objet Dataframe pendant l'opération de suppression.
Exemple de DataFrame Pandas
Notre Dataframe d'exemple contient les colonnes product_name, Unit_Price, No_Of_Units, Available_Quantity, et Available_Since_Date. Il comporte également des lignes avec des valeurs NaN qui sont utilisées pour indiquer 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 c'est ainsi que nous avons créé notre exemple de Dataframe.
Après chaque opération de suppression, vous imprimerez le Dataframe en utilisant df
qui affichera le Dataframe dans un format de tableau HTML
normal.
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 indices à 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 voulez supprimeraxis=0
indique que les lignes doivent être supprimées du Dataframe.inplace=True
effectue l'opération de suppression dans la même Dataframe.
Après avoir supprimé les lignes avec l'index 5 et 6, vous aurez les données ci-dessous 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'indices.
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'échantillon excluant des plages de données spécifiques.
Vous pouvez créer une plage de lignes dans un Dataframe en utilisant la méthode df.index()
. Vous pouvez ensuite passer cette plage à la méthode drop()
pour supprimer les lignes, comme indiqué 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 le sera pas.inplace=True
effectue l'opération de suppression dans la même Dataframe.
Après avoir supprimé les lignes comprises entre 2 et 4, vous obtenez les données ci-dessous 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 des lignes du 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 les positions de début et de fin séparées par un :
. Par exemple, vous utiliserez 2:3
pour sélectionner les lignes de 2 à 3. Si vous voulez 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 de formation et de test.
Utilisez l'extrait ci-dessous pour sélectionner les lignes de 0 à l'index 2. Cela a pour effet de supprimer les lignes après l'indice 2.
df = df.iloc[:2]
df
Dans ce code, :2 sélectionne les lignes jusqu'à l'indice 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'indice 2, vous aurez les données ci-dessous 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 des lignes après un index spécifique.
Ensuite, vous apprendrez à supprimer des lignes à l'aide de 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 les lignes dont 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 ayant des valeurs spécifiques.
Pour supprimer des lignes en fonction de certaines conditions, sélectionnez l'index des lignes qui remplissent la condition spécifique et transmettez 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[].index
sélectionne l'index des lignes qui passent la condition.inplace=True
effectue 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 dont la condition est que le unit_price
est supérieur à 400 et inférieur à 600, vous obtenez 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
En résumé, 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 d'un Dataframe sont étiquetées. Enfin, vous avez appris à supprimer des lignes à l'aide d'indices, d'une plage d'indices et en fonction de conditions.
Si vous avez aimé cet article, n'hésitez pas à le partager.