Wie man eine Zeile basierend auf einem Spaltenwert in Pandas DataFrame löscht
-
.drop
Methode zum Löschen von Zeilen auf Spaltenwerten in PandasDataFrame
-
booleanische Maskierungsmethode
zum Löschen von Zeilen in PandasDataFrame
Wir werden Methoden zum Löschen von Pandas DataFrame
-Zeilen basierend auf den Bedingungen der Spaltenwerte vorstellen, indem wir .drop
(mit und ohne loc
) und boole
sche Maskierung verwenden.
.drop
Methode zum Löschen von Zeilen auf Spaltenwerten in Pandas DataFrame
.drop
-Methode akzeptiert einen einzelnen oder eine Liste von Spaltennamen und löscht die Zeilen oder Spalten. Für Zeilen setzen wir den Parameter axis=0
und für Spalten setzen wir axis=1
(standardmäßig ist axis
0
). Wir können auch die Reihe von True
und False
erhalten, basierend auf der Bedingung, die auf den Spaltenwert in Pandas DataFrame
angewendet wird.
Beispiel-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)
Ausgabe:
Name Price Stock
0 Orange 34 Yes
3 Apple 44 Yes
5 Kiwi 84 Yes
Wir können auch ein ähnliches Ergebnis erhalten, indem wir .loc
innerhalb der df.drop
Methode verwenden.
df.drop(df.loc[df["Stock"] == "Yes"].index, inplace=True)
Wir können auch die Zeilen basierend auf mehreren Spaltenwerten fallen lassen. Im obigen Beispiel können wir Zeilen löschen, die einen Preis >= 30 und einen Preis <=70 haben.
Beispiel-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)
Ausgabe:
Name Price Stock
1 Mango 24 No
2 banana 14 No
5 Kiwi 84 Yes
Zeilen mit Preis > 30 und weniger als < 70 wurden gelöscht.
booleanische Maskierungsmethode
zum Löschen von Zeilen in Pandas DataFrame
Die booleanische Maskierung
ist der beste und einfachste Weg, Zeilen in Pandas DataFrame
auf der Basis von Spaltenwerten zu löschen.
Beispiel-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")])
Ausgabe:
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
Verwandter Artikel - Pandas DataFrame
- Wie man Pandas DataFrame-Spaltenüberschriften als Liste erhält
- Pandas DataFrame-Spalte löschen
- Wie man DataFrame-Spalte in Datetime in Pandas konvertiert
- Wie konvertiert man eine Fließkommazahl in eine Ganzzahl in Pandas DataFrame
- Wie man Pandas-DataFrame nach den Werten einer Spalte sortiert
- Wie erhält man das Aggregat der Pandas gruppenweise und sum