Einführung
In diesem Tutorial erfahren Sie, wie Sie die dropna()
-Funktion von pandas DataFrame verwenden.
NA
-Werte stehen für „Nicht verfügbar“. Dies kann auf Null
, None
, pandas.NaT
oder numpy.nan
zutreffen. Die Verwendung von dropna()
entfernt die Zeilen und Spalten mit diesen Werten. Dies kann Ihnen dabei helfen, nur gültige Daten zu erhalten.
Standardmäßig gibt diese Funktion ein neues DataFrame zurück, und das Ausgangs-DataFrame bleibt unverändert.
Dieses Tutorial wurde mit Python 3.10.9, pandas 1.5.2 und NumPy 1.24.1 überprüft.
Syntax
dropna()
akzeptiert die folgenden Parameter:
axis
:{0 (oder 'index'), 1 (oder 'columns')}, Standard 0
- Wenn
0
, entfernen Sie Zeilen mit fehlenden Werten. - Wenn
1
, entfernen Sie Spalten mit fehlenden Werten. how
:{'any', 'all'}, Standard 'any'
- Wenn
'any'
, entfernen Sie die Zeile oder Spalte, wenn eines der WerteNA
ist. - Wenn
'all'
, entfernen Sie die Zeile oder Spalte, wenn alle WerteNA
sind. thresh
: (optional) einint
-Wert zur Angabe des Schwellenwerts für die Drop-Operation.subset
: (optional) Spaltenbezeichnung oder Sequenz von Bezeichnungen zur Angabe von Zeilen oder Spalten.inplace
: (optional) einbool
-Wert.- Wenn
True
, wird das Quell-DataFrame geändert undNone
wird zurückgegeben.
Erstellung von Beispieldatenrahmen
Erstellen Sie einen Beispieldatenrahmen, der gültige und ungültige Werte enthält:
Dieser Code gibt den Datenrahmen aus:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
Fügen Sie dann einen zweiten Datenrahmen mit zusätzlichen Zeilen und Spalten mit NA
-Werten hinzu:
Dies gibt einen neuen Datenrahmen aus:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
4 NaT NaT NaT NaT NaT
Sie werden die vorherigen Datenrahmen in den folgenden Beispielen verwenden.
Entfernen aller Zeilen mit fehlenden Werten
Verwenden Sie dropna()
, um Zeilen mit None
, NaN
oder NaT
-Werten zu entfernen:
Dies gibt aus:
OutputName ID Population Regions
0 Shark 1 100 1
A new DataFrame with a single row that didn’t contain any NA
values.
Alle Spalten mit fehlenden Werten verwerfen
Verwenden Sie dropna()
mit axis=1
, um Spalten mit beliebigen None
, NaN
oder NaT
-Werten zu entfernen:
Die Spalten mit beliebigen None
, NaN
oder NaT
-Werten werden verworfen:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
A new DataFrame with a single column that contained non-NA
values.
Zeilen oder Spalten verwerfen, wenn alle
Werte Null
sind mit how
Verwenden Sie den zweiten DataFrame und how
:
Die Zeilen mit alle
Werten gleich NA
werden verworfen:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
2 Jellyfish 3 NaN NaT NaT
3 Starfish 4 NaT NaT NaT
Die fünfte Zeile wurde verworfen.
Anschließend verwenden Sie how
und geben Sie die axis
an:
Die Spalten mit alle
Werten gleich NA
werden verworfen:
OutputName ID Population Regions
0 Shark 1 100 1
1 Whale 2 200 None
2 Jellyfish 3 NaN NaT
3 Starfish 4 NaT NaT
4 NaT NaT NaT NaT
Die fünfte Spalte wurde verworfen.
Das Löschen von Zeilen oder Spalten, wenn ein Schwellenwert überschritten wird, mit thresh
Verwenden Sie das zweite DataFrame mit thresh
, um Zeilen zu löschen, die den Schwellenwert von mindestens 3
Nicht-NA
-Werten nicht erfüllen:
Die Zeilen, die nicht mindestens 3
Nicht-NA
-Werte enthalten, werden gelöscht:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Die dritte, vierte und fünfte Zeile wurden gelöscht.
Das Löschen von Zeilen oder Spalten für bestimmte Untermengen
Verwenden Sie das zweite DataFrame mit subset
, um Zeilen mit NA
-Werten in der Population
-Spalte zu löschen:
Die Zeilen, die Population
mit NA
-Werten enthalten, werden gelöscht:
OutputName ID Population Regions Endangered
0 Shark 1 100 1 NaT
1 Whale 2 200 None NaT
Die dritte, vierte und fünfte Zeile wurden gelöscht.
Sie können auch die index
-Werte im subset
angeben, wenn Sie Spalten aus dem DataFrame löschen:
Die Spalten, die NA
-Werte im Teilmengenbereich der Zeilen 1
und 2
enthalten:
OutputName ID
0 Shark 1
1 Whale 2
2 Jellyfish 3
3 Starfish 4
4 NaT NaT
Die dritte, vierte und fünfte Spalte wurden gelöscht.
Ändern des Quelldatenrahmens nach dem Löschen von Zeilen oder Spalten mit inplace
Nach Standardverhalten ändert dropna()
den Quelldatenrahmen nicht. In einigen Fällen möchten Sie jedoch möglicherweise Speicherplatz sparen, wenn Sie mit einem großen Quelldatenrahmen arbeiten, indem Sie inplace
verwenden.
Dieser Code verwendet keine dfresult
-Variable.
Dies wird ausgegeben:
OutputName ID Population Regions
0 Shark 1 100 1
Der Originaldatenrahmen wurde geändert.
Schlussfolgerung
In diesem Artikel haben Sie die Funktion dropna()
verwendet, um Zeilen und Spalten mit NA
-Werten zu entfernen.
Weiterlernen mit weiteren Python- und pandas-Tutorials – Python pandas Modul Tutorial, pandas Duplikate Zeilen löschen.
Referenzen
Source:
https://www.digitalocean.com/community/tutorials/pandas-dropna-drop-null-na-values-from-dataframe