Einführung in Pandas.Dropna ()

Pythons Open-Source-Bibliothek Pandas ist zweifellos die am weitesten verbreitete Bibliothek für Datenwissenschaft und -analyse. Es ist auch ein bevorzugtes Paket für Ad-hoc-Datenmanipulationsvorgänge. Das Verdienst liegt in der äußerst flexiblen Darstellung von Daten mithilfe von DataFrames und dem Arsenal an Funktionen, die der Manipulation von Daten in diesen Data Frames ausgesetzt sind. Datenprobleme im realen Leben verursachen das Problem fehlender Daten, und es ist unbedingt erforderlich, dass diese Datenpunkte auf die richtige Weise behoben werden. Der Umgang mit fehlenden Daten wird von dieser Funktion unterstützt, Pandas.Dropna () .

Was genau sind Pandas.Dropna ()?

Für die offizielle Funktionsdefinition kann auf die Pydata-Seite verwiesen werden.

Der gezeigte Funktionsheader sieht wie folgt aus (zusammen mit den Standardparameterwerten):

DataFrame.dropna(self, axis=0, how='any', thresh=None, subset=None, inplace=False)

Die in der Funktionsdefinition angezeigten Parameter (ohne self (das Datenrahmenobjekt selbst)) lauten wie folgt:

  • Achse: Bezieht sich auf die Ausrichtung (Zeile oder Spalte), in der Daten abgelegt werden. Mögliche Werte sind 0 oder 1 (auch 'Index' oder 'Spalten'). 0 / 'Index' steht für das Löschen von Zeilen und 1 / 'Spalten' für das Löschen von Spalten.
  • wie: Gibt das Szenario an, in dem die Spalte / Zeile mit dem Nullwert gelöscht werden muss. Die Werte sind "any" oder "all". 'all' löscht die Zeile / Spalte nur, wenn alle Werte in der Zeile / Spalte null sind. 'any' löscht die Zeile / Spalte, wenn mindestens ein Wert in Zeile / Spalte null ist.
  • thresh: Gibt die Mindestanzahl von Nicht-NA-Werten in Zeile / Spalte an, damit diese im Endergebnis berücksichtigt werden. Jede Zeile / Spalte mit der Anzahl der Nicht-NA-Werte <Schwellenwert wird unabhängig von anderen übergebenen Parametern entfernt. Wenn thresh = none ist, wird dieser Filter ignoriert.
  • Teilmenge: Achse gibt an, ob Zeilen / Spalten gelöscht werden müssen. Untermenge nimmt eine Liste von Spalten bzw. Zeilen (entgegengesetzt zur Achse), die nach Null- / NA-Werten anstelle einer vollständigen Liste von Spalten bzw. Zeilen durchsucht werden sollen.
  • Inplace: Als bewährte Methode wird der ursprüngliche DataFrame (oder die Datendarstellung) nicht geändert, sondern eine separate Kopie mit den Änderungen (dh abgelegte Zeilen / Spalten) zurückgegeben. Inplace-Attribut gibt Ihnen die Flexibilität, die ursprüngliche Datenstruktur selbst zu ändern.

Nachdem wir uns einen Überblick über die von dropna () zur Verfügung gestellten Parameter verschafft haben, wollen wir uns einige mögliche Szenarien für fehlende Daten ansehen und erklären, wie wir sie angehen.

Anwendungsbeispiele für Pandas.Dropna ()

Unten sind die Beispiele für pandas.dropna ():

Pandas importieren : Um Dropna () verwenden zu können, muss ein DataFrame vorhanden sein. Um einen DataFrame zu erstellen, muss die Panda-Bibliothek importiert werden (keine Überraschung hier). Wir werden es mit einem Alias ​​pd importieren, um Objekte unter dem Modul bequem zu referenzieren. Um Nullwerte zu definieren, bleiben wir bei numpy.nan. Daher importieren wir die Numpy-Bibliothek mit einem Alias ​​np:

Code:

In (1): import pandas as pd
In (2): import numpy as np

1. Erstellen Sie ein DataFrame-Objekt zur Bearbeitung

Nach dem Importieren von Pandas sind alle Methoden, Funktionen und Konstruktoren in Ihrem Arbeitsbereich verfügbar. Erstellen wir also einen DataFrame, der uns helfen kann, die Verwendung von dropna () zu demonstrieren.

Code:

In (3): df = pd.DataFrame(
('Company':('Google', 'Amazon', 'Infosys', 'Directi'),
'Age':('21', '23', '38', '22'),
'NetWorth ($ bn)':(300, np.nan, np.nan, 1.3),
'Founder':(np.nan, np.nan, np.nan, np.nan),
'Headquarter-Country':('United States', np.nan, 'India', 'India') ))
In (4): print(df)
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
1 Amazon 23 NaN NaN NaN
2 Infosys 38 NaN NaN India
3 Directi 22 1.3 NaN India

Der gedruckte DataFrame wird in der folgenden Demonstration bearbeitet.

2. Löschen von Zeilen gegen Spalten

Der axis-Parameter wird verwendet, um Zeilen oder Spalten wie folgt zu löschen:

Code:

In (5): df.dropna(axis=1)

Ausgabe:

Out(5):
Company Age
0 Google 21
1 Amazon 23
2 Infosys 38
3 Directi 22

Jede Spalte, die mindestens 1 NaN als Zellwert enthält, wird verworfen. Mal sehen, wie Zeilen (Achse = 0) funktionieren.
Hinweis : Dies ist das Standardverhalten, wenn die Achse nicht explizit angegeben wird.

Code:

In (6): df.dropna(axis=0)

Ausgabe:

Out(6):
Empty DataFrame
Columns: (Company, Age, NetWorth ($ bn), Founder, Headquarter-Country) Index: ()

Hmm, es sind also keine Daten mehr im zurückgegebenen DataFrame! Dies ist offensichtlich nicht das beabsichtigte Verhalten. Mal sehen, wie man das behebt.

3. Verwenden des Subset-Attributs

Frühere Operationen wurden basierend auf allen Spalten gelöscht, wenn axis = 0. Da es einen Spaltengründer gibt, der nur Nullwerte enthält, werden alle Zeilen gelöscht. Geben Sie eine Spalte an, die zum Filtern verwendet werden soll:

Code:

In (7): df.dropna(axis=0, subset=('NetWorth ($ bn)'))

Ausgabe:

Out(7):
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
3 Directi 22 1.3 NaN India

Nun werden, wie wir sehen, nur Datensätze mit Nanvalue in der Networth-Spalte gelöscht. Der zurückgegebene DataFrame kann erneut geändert werden, indem dropna () erneut angewendet wird, um Spalten durch Übergeben von axis = 1 herauszufiltern.

4. Verwenden des How-Parameters

Standardmäßig löscht dropna () die gesamte Zeile / Spalte, auch wenn nur 1 Wert fehlt. Eine schnell belichtete Kehrseite darf nur gelöscht werden, wenn alle Werte in einer Zeile / Spalte null sind. Dies wird erreicht, indem Sie how = 'all' anstelle von how = 'any' (das Standardverhalten) festlegen.

Code:

In (8): df.dropna(axis=1, how='all')

Ausgabe:

Out(8):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Der resultierende DataFrame kann nun bei Bedarf zum Löschen von Zeilen / Spalten mit einer komplexeren Logik verwendet werden.

5. Kontrolle durch Thresh

Der Thresh-Parameter ist wahrscheinlich das mächtigste Werkzeug, wenn er mit dem Rest angemessen kombiniert wird.

Code:

In (17): df.dropna(axis=1, thresh=2)

Ausgabe:

Out(17):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India

Wenn Sie axis = 1 und thresh = 2 einstellen, werden nur die Spalten mit mindestens 2 Nicht-NaN-Werten beibehalten.

Fazit

Die oben gezeigten Beispiele haben einen simplen Charakter und sind dennoch mächtig genug, um die meisten Probleme zu lösen, auf die Sie in realen Situationen stoßen könnten. Trotzdem sollte man das Kombinieren verschiedener Parameter üben, um ein kristallklares Verständnis ihrer Verwendung und ihrer Verarbeitungsgeschwindigkeit in ihrer Anwendung zu erhalten.

Empfohlene Artikel

Dies ist eine Anleitung zu Pandas.Dropna (). Hier diskutieren wir, was ist Pandas.Dropna (), die Parameter und Beispiele. Sie können auch unsere anderen verwandten Artikel durchgehen, um mehr zu erfahren.

  1. Was ist Pandas?
  2. NLP in Python
  3. Abstrakte Klasse in Python
  4. Fakultät in Python
  5. Factorial-Programm in JavaScript