Comment supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
-
La méthode
.drop
pour supprimer une ligne sur une valeur de colonne dans le PandasDataFrame
-
Méthode de
masquage booléen
pour supprimer une ligne dans la PandasDataFrame
Nous allons présenter des méthodes pour supprimer des lignes de Pandas DataFrame
basées sur les conditions sur les valeurs des colonnes, en utilisant .drop
(avec et sans loc
) et masquage booléen
.
La méthode .drop
pour supprimer une ligne sur une valeur de colonne dans le Pandas DataFrame
La méthode .drop
accepte les noms d’une seule colonne ou d’une liste de colonnes et supprime les lignes ou les colonnes. Pour les lignes, nous définissons le paramètre axis=0
et pour les colonnes, nous définissons axis=1
(par défaut axis
est 0
). Nous pouvons également obtenir les séries de True
et False
en fonction de la condition qui s’applique à la valeur de la colonne dans la Pandas DataFrame
.
Exemples de codes:
# python 3.x
import pandas as pd
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
# Get names of indexes for which column Stock has value No
indexNames = df[df["Stock"] == "No"].index
# Delete these row indexes from dataFrame
df.drop(indexNames, inplace=True)
print(df)
Production:
Name Price Stock
0 Orange 34 Yes
3 Apple 44 Yes
5 Kiwi 84 Yes
Nous pouvons également obtenir un résultat similaire en utilisant le .loc
dans la méthode df.drop
.
df.drop(df.loc[df["Stock"] == "Yes"].index, inplace=True)
Nous pouvons également supprimer les lignes sur la base de plusieurs valeurs de colonne. Dans l’exemple ci-dessus, nous pouvons supprimer les lignes qui ont un prix >= 30 et un prix <=70.
Exemple de code:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
indexNames = df[(df["Price"] >= 30) & (df["Price"] <= 70)].index
df.drop(indexNames, inplace=True)
print(df)
Production:
Name Price Stock
1 Mango 24 No
2 banana 14 No
5 Kiwi 84 Yes
Les lignes ayant un prix > 30 et moins < 70 ont été supprimées.
Méthode de masquage booléen
pour supprimer une ligne dans la Pandas DataFrame
Le masquage booléen
est la meilleure et la plus simple façon de supprimer une ligne dans une Pandas DataFrame
en fonction de la valeur de la colonne.
Exemples de codes:
# python 3.x
import pandas as pd
# List of Tuples
fruit_list = [
("Orange", 34, "Yes"),
("Mango", 24, "No"),
("banana", 14, "No"),
("Apple", 44, "Yes"),
("Pineapple", 64, "No"),
("Kiwi", 84, "Yes"),
]
# Create a DataFrame object
df = pd.DataFrame(fruit_list, columns=["Name", "Price", "Stock"])
print(df[df.Price > 40])
print("............................")
print(df[(df.Price > 40) & (df.Stock == "Yes")])
Production:
Name Price Stock
3 Apple 44 Yes
4 Pineapple 64 No
5 Kiwi 84 Yes
............................
Name Price Stock
3 Apple 44 Yes
5 Kiwi 84 Yes
Article connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme