Pandas lassen Zeilen mit NaN fallen
-
Pandas lassen Zeilen mit NaN mit der Methode
DataFrame.notna()
fallen -
Pandas lassen Zeilen nur mit NaN-Werten für alle Spalten mit der Methode
DataFrame.dropna()
fallen -
Pandas lassen Zeilen nur mit NaN-Werten für eine bestimmte Spalte mit der Methode
DataFrame.dropna()
fallen -
Pandas Drop Rows With
NaN
Values for Any Column UsingDataFrame.dropna()
Method
In diesem Lernprogramm wird erklärt, wie man alle Zeilen mit NaN
-Werten mit den Methoden DataFrame.notna()
und DataFrame.dropna()
löschen kann.
Wir werden den DataFrame im folgenden Beispielcode verwenden.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print(data)
Ausgabe:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
Pandas lassen Zeilen mit NaN mit der Methode DataFrame.notna()
fallen
Die Methode DataFrame.notna()
liefert ein boolesches Objekt mit der gleichen Anzahl von Zeilen und Spalten wie der aufrufende DataFrame. Wenn ein Element nicht NaN
ist, wird es auf den Wert True
im booleschen Objekt abgebildet, und wenn ein Element ein NaN
ist, wird es auf den Wert False
abgebildet.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data[data["Income($)"].notna()]
print("DataFrame after removing rows with NaN value in Income Field:")
print(data)
Ausgabe:
Initial DataFrame:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
DataFrame after removing rows with NaN value in Income Field:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
3 Chris 21.0 3500.0 25000.0
Hier wenden wir die Methode notna()
auf die Spalte Income($)
an, die ein Serienobjekt mit den Werten True
oder False
zurückgibt, je nach den Werten der Spalte. Wenn wir das boolesche Objekt als Index an den ursprünglichen DataFrame übergeben, erhalten wir nur Zeilen ohne NaN
-Werte für die Spalte Income($)
.
Pandas lassen Zeilen nur mit NaN-Werten für alle Spalten mit der Methode DataFrame.dropna()
fallen
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(how="all")
print("DataFrame after removing rows with NaN value in All Columns:")
print(data)
Ausgabe:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in All Columns:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
Es werden nur die Zeilen mit NaN
-Werten für alle Felder im DataFrame entfernt. Wir setzen how='all'
in der Methode dropna()
, damit die Methode die Zeile nur dann fallen lässt, wenn alle Spaltenwerte für die Zeile NaN
sind.
Pandas lassen Zeilen nur mit NaN-Werten für eine bestimmte Spalte mit der Methode DataFrame.dropna()
fallen
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(subset=["Id"])
print("DataFrame after removing rows with NaN value in Id Column:")
print(data)
Ausgabe:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in Id Column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
Es werden alle Spalten im DataFrame gelöscht, die nur in der Spalte Id
den Wert NaN
haben.
Pandas Drop Rows With NaN
Values for Any Column Using DataFrame.dropna()
Method
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna()
print("DataFrame after removing rows with NaN value in any column:")
print(data)
Ausgabe:
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in any column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
3 345.0 21.0 3500.0 25000.0
Standardmäßig entfernt die Methode dropna()
alle Zeilen, die mindestens einen NaN
-Wert haben.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Pandas DataFrame Row
- So erhalten Sie die Zeilenanzahl eines Pandas DataFrame
- Zufälliges Mischen von DataFrame-Zeilen in Pandas
- Wie man DataFrame-Zeilen auf der Grundlage von Spaltenwerten in Pandas filtert
- Wie man durch Zeilen eines DataFrame in Pandas iteriert
- Wie erhält man einen Index aller Reihen, deren bestimmte Spalte den gegebenen Zustand in Pandas befriedigt
- Finden Sie doppelte Zeilen in einem DataFrame mit Pandas