[PYTHON] Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas

Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas

Pandas ist ein Muss für maschinelles Lernen mit Python, aber ich vergesse oft, wie man es benutzt, deshalb habe ich mir notiert, wie man häufig verwendete Funktionen benutzt. In Zukunft möchte ich die Operationen, die ich mit Pandas gelernt habe, als separaten Artikel aktualisieren. Ich hoffe, es ist hilfreich für diejenigen, die begonnen haben, Pandas zu verwenden, und für diejenigen, die den Betrieb ein wenig überprüfen möchten.

Da dies ein Memorandum für Anfänger ist, besteht die Möglichkeit, dass der Inhalt falsch ist. Wenn Sie Fehler finden, würden wir uns freuen, wenn Sie uns kontaktieren könnten.

Betriebsumgebung

Bedienungsinhalte im Artikel

Die folgenden Betriebsmethoden werden in diesem Artikel beschrieben.

  1. Grundlegende Bedienung von Pandas
  1. Verwenden Sie Pandas bequem

Zusammenfassung

Hier ist eine Zusammenfassung der Funktionen, die ich häufig in Pandas verwende. Obwohl das Folgende derzeit funktioniert, verwende ich es immer noch mit einem launischen Verständnis, sodass ich es zu einem anderen Zeitpunkt untersuchen und zusammenfassen werde.

1. Grundlegende Bedienung von Pandas

Importieren Sie die Pandas-Bibliothek.

import pandas as pd 

Verwenden Sie die Methode read_csv, um die CSV-Datei als DataFrame-Objekt zu lesen. Dieses Mal lese ich eine Datei namens "student.csv" in meinem Arbeitsverzeichnis.

data = pd.read_csv("student.csv")
display(data.head(5))

スクリーンショット 2020-01-05 20.36.47.png

[** Ergänzung 1: Beim Lesen von CSV ohne Header **] Wenn die CSV-Datei keine Header enthält ("Geschlecht", "Alter", "Größe", "Gewicht"), werden die ersten Daten (NaN, 13, 151.7, 59.1) als Header gelesen. Geben Sie * header = None * an, da dies enden wird.

Verwenden Sie die Methode to_csv, um ein DataFrame-Objekt in eine CSV-Datei zu schreiben. Im Beispiel wird es im Arbeitsverzeichnis unter dem Dateinamen "student_out.csv" gespeichert.

data.to_csv("student_out.csv", index=False)

Geben Sie * index = False * an, um zu vermeiden, dass der Index (Datenbezeichnung) beim Speichern gespeichert wird. Wenn Sie nicht wissen, was es ist, können Sie die ohne * index = False * generierte CSV-Datei überprüfen.

<Überprüfen Sie den Datentyp>

Sehen Sie sich das Attribut dtypes des DataFrame-Objekts an, um die in einem DataFrame enthaltenen Datentypen anzuzeigen.

display(data.dtypes)

Das Ergebnis ist wie folgt.

スクリーンショット 2020-01-05 20.38.53.png

So ermitteln Sie den Datentyp für jedes Etikett:

display(data["age"].dtype )

スクリーンショット 2020-01-05 20.40.20.png

Verwenden Sie die Zählmethode, um die Anzahl der Daten anzuzeigen. Die Anzahl der Daten beträgt 1000, aber "Geschlecht" ist kleiner als 1000, da fehlende Daten nicht gezählt werden.

display(data.count())

スクリーンショット 2020-01-05 20.42.07.png

[** Ergänzung 1: Ermitteln Sie die Anzahl der Daten für jedes Etikett **] Gehen Sie wie folgt vor, um die Anzahl der Daten für jedes Etikett zu ermitteln.

display(data["sex"].count())

スクリーンショット 2020-01-05 20.43.13.png

<Überprüfen Sie die Anzahl der fehlenden Daten>

Verwenden Sie die isnull-Methode und die sum-Methode, um die Anzahl der fehlenden Daten zu überprüfen.

display(data.isnull().sum())

スクリーンショット 2020-01-05 20.44.05.png

[** Ergänzung 1: Funktionsweise der isnull-Methode **] Gemäß der offiziellen Dokumentation gibt die isnull-Methode ein DataFrame-Objekt mit der gleichen Größe wie der ursprüngliche DataFrame zurück, wobei ** None ** und ** numpy.NaN ** auf True und die anderen auf False gesetzt sind.

display(data.isnull().head(5))

スクリーンショット 2020-01-05 20.45.03.png

[** Ergänzung 2: Operation der Summenmethode **] Die Summenmethode gibt den Gesamtwert in der angegebenen Achsenrichtung zurück. In Python wird True als 1 und False als 0 behandelt, sodass der Gesamtwert die Anzahl von True (die Anzahl der fehlenden Daten) ist. Das Folgende ist ein Zitat aus Referenz 4. Das Zitat ist Python 3.8.1, aber ich denke, es ist das gleiche für andere Verse. .. .. Vielleicht. .. .. Ich habe es nicht bestätigt. .. ..

Boolesche Werte sind zwei konstante Objekte False und True. Diese werden verwendet, um Wahrheitswerte darzustellen (obwohl andere Werte ebenfalls als falsch oder wahr angesehen werden). ** In einem numerischen Verarbeitungskontext (z. B. wenn sie als Argument für einen arithmetischen Operator verwendet werden) verhalten sie sich ähnlich wie 0 bzw. 1. ** Für jeden Wert, der als Wahrheitswert interpretiert werden kann, wird die integrierte Funktion bool () verwendet, um den Wert in einen Booleschen Wert umzuwandeln (siehe Abschnitt Wahrheitsbestimmung oben).

[Referenz]

  1. Pandas offizielles Dokument isnull ()
  2. Pandas Official Document sum ()
  3. Zählen Sie die Anzahl der Elemente, die bestimmte Bedingungen mit note.nkmk.me pandas erfüllen
  4. Eingebauter Typ des offiziellen Python-Dokuments

<Überprüfen Sie die Basisstatistik der Daten>

Verwenden Sie die Beschreibungsmethode, um die groben statistischen Daten der im DataFrame enthaltenen Daten anzuzeigen. Die Beschreibungsmethode wird ausgeführt, wobei NaN ignoriert wird.

display(data.describe(include="all"))

スクリーンショット 2020-01-05 20.49.08.png

[** Ergänzung 1: Aggregat außer numerischen Daten **] Standardmäßig werden nur numerische Daten aggregiert, daher wird ** include = "all" ** auch für "sex" angegeben. Beachten Sie außerdem, dass sich der Inhalt der aggregierten Statistiken zwischen numerischen Daten und anderen Daten unterscheidet.

Referenz 1: Pandas offizielles Dokument beschreiben ()

<Führen Sie eine One-Hot-Codierung für Kategoriedaten durch>

Verwenden Sie die Methode get_dummies, um eine One-Hot-Codierung durchzuführen. Das Folgende ist ein Beispiel für die Durchführung einer One-Hot-Codierung für "Sex".

# one-hot-Codierung durchführen.
dummydf_sex = pd.get_dummies(data, columns=["sex"], dummy_na=True)

#Originale Daten
display(data.head(5))
# one-hot-Daten codieren
display(dummydf_sex.head(5))

スクリーンショット 2020-01-05 20.50.28.png

Auf diese Weise werden beim Ausführen einer One-Hot-Codierung neue Bezeichnungen ("sex_male", "sex_female", "sex_nan") von "sex" -Daten ("männlich", "weiblich", "Nan") erstellt. Und 0 zeigt, was die Originaldaten waren.

[** Ergänzung 1: Fehlende Daten als Etikett behandeln **] Standardmäßig werden fehlende Daten (NaN) ignoriert. Da "fehlende Daten" ebenfalls gute Informationen sind, geben Sie im Argument der Methode get_dummies * dummy_na = True * und auch "NaN" an. One-Hot-Codierung wird als eine Daten durchgeführt.

[Referenz]

  1. Pandas offizielles Dokument get_dummies ()

<Etikett und Daten hinzufügen>

Versuchen Sie, dem DataFrame-Objekt neue Beschriftungen und Daten hinzuzufügen. Lassen Sie uns als Beispiel ein BMI-Label erstellen. Eine einfache Möglichkeit besteht darin, (Schritt 1) eine Datenliste zu erstellen und (Schritt 2) wie unten gezeigt als neue Bezeichnung hinzuzufügen.

#Schritt 1: Erstellen Sie eine Liste der BMIs. Es hat nichts mit Pandas Operationen zu tun.
bmi = [ w * (h / 100)**2 for w, h in zip(data["weight"], data["height"]) ]

#Schritt 2: BMI auflisten"bmi"Fügen Sie es als Etikettendaten hinzu.
data["bmi"] = bmi

Lassen Sie uns das Ergebnis anzeigen.

display(data.head(5))

スクリーンショット 2020-01-05 20.53.23.png

Sie können sehen, dass das Label "bmi" und die Daten zum DataFrame hinzugefügt wurden.

[** Ergänzung 1: Verwendung der Zuweisungsmethode **] Sie können Beschriftungen auch mit der Zuweisungsmethode hinzufügen. In der Zuweisungsmethode können Sie auch Daten mit einer Funktion zum Erstellen von Daten erstellen. Lassen Sie uns versuchen, ein Etikett für das richtige Gewicht (Proper_weight) hinzuzufügen.

data = data.assign(proper_weight = lambda x : (x.height / 100.0)**2 * 22)
display(data.head(5))

スクリーンショット 2020-01-05 20.54.46.png

[Referenz]

  1. Pandas Official Document Tutorial Setting
  2. Pandas Official Document assign ()

<Label löschen>

Löschen Sie das Etikett und die darin enthaltenen Daten. Gehen Sie wie folgt vor, um das von <Label und Daten hinzufügen> hinzugefügte "bmi" zu löschen.

#Entfernen Sie das Etikett
data.drop(columns=["bmi"], inplace=True)

Lassen Sie uns das Ergebnis anzeigen.

スクリーンショット 2020-01-05 20.56.53.png

[** Ergänzung 1: Änderungen im ursprünglichen DataFrame widerspiegeln **] Standardmäßig gibt die drop-Methode ein DataFrame-Objekt zurück und nimmt keine Änderungen am ursprünglichen DataFrame-Objekt vor. Sie können die Änderungen im ursprünglichen DataFrame-Objekt widerspiegeln, indem Sie * place = True * angeben.

[Referenz]

  1. Pandas Official Document drop ()

<Füllen Sie die fehlenden Daten mit dem angegebenen Wert>

Verwenden Sie die Fillna-Methode, um die fehlenden Daten mit dem angegebenen Wert zu füllen. Füllen wir den fehlenden Teil von "Sex" mit "Unbekannt".

data.fillna(value={"sex": "unknown"}, inplace=True)

Lassen Sie uns das Ergebnis überprüfen.

display(data.head(5))

スクリーンショット 2020-01-05 20.58.49.png

Ich konnte bestätigen, dass "unbekannt" in den fehlenden Teil des Geschlechts eingegeben wurde.

[Referenz]

  1. Pandas offizielles Dokument fillna ()

2. Verwenden Sie Pandas bequem

Geben Sie die Bedingungen an und versuchen Sie, die Daten zu extrahieren, die den Bedingungen entsprechen. Als Beispiel erstellen wir ein neues DataFrame-Objekt (data_over), indem wir Daten extrahieren, die mehr wiegen als das richtige Gewicht (Proper_weight).

data_over = data[data.weight > data.proper_weight]
display(data_over.head(5))

スクリーンショット 2020-01-05 20.59.55.png

[Referenz]

  1. Pandool Official Document Tutorial Boolean Indexing
  2. Pandas Official Document Indizieren und Auswählen von Daten

<Daten durch Angabe von Bedingungen ändern>

Geben Sie eine Bedingung an, um nur die Daten zu ändern, die der Bedingung entsprechen. Als Beispiel setzen wir das Gewicht von Daten mit einer Höhe von 150 oder weniger auf 0.

data_over["weight"][data_over.height <= 150] = 0
display(data_over.head(5))

スクリーンショット 2020-01-05 21.01.12.png

Ich habe getan, was ich vorerst tun möchte, aber ich bekomme eine Warnung. Ich habe schnell nachgeforscht, konnte es aber nicht vollständig verstehen, daher möchte ich es untersuchen und zu einem späteren Zeitpunkt einen Artikel schreiben.

<Verarbeitung für Gruppen mit groupby durchführen>

Verwenden Sie die Methode group by, wenn Sie Daten, die den Bedingungen entsprechen, als Gruppe in Gruppeneinheiten verarbeiten möchten. Geben wir als Beispiel den Durchschnittswert für jedes Geschlecht aus.

display(data.groupby("sex").mean())

スクリーンショット 2020-01-05 21.07.07.png

[Referenz]

  1. Pandas Official Document groupby ()
  2. Pandas Official Document GroupBy Object
  3. Qiita: Verwendung von Pandas groupby

Referenz: Pandas Official Document

Offizielles Dokument von Pandas

Recommended Posts

Notieren Sie sich die Liste der grundlegenden Verwendungszwecke von Pandas
Kopieren Sie die Liste in Python
Zusammenfassung der grundlegenden Verwendung von Pandas
Hinweise zum Anpassen der Diktatlistenklasse
Schreiben Sie eine Notiz über die Python-Version von Python Virtualenv
Grundlegende Bedienung von Pandas
Grundlegende Verwendung von Flask-Classy
Grundlegende Verwendung von Jinja2
Grundlegende Bedienung von Pandas
Grundlegende Verwendung von SQL Alchemy
Ein junger Ingenieur hat den G-Test bestanden. Notieren Sie sich also, was Sie gelernt haben
Erstellen Sie einen BOT, der die Discord-URL verkürzt
[Einführung in Python] Grundlegende Verwendung der Bibliothek matplotlib
Python Hinweis: Das Rätsel, einer Variablen eine Variable zuzuweisen
Super grundlegende Verwendung von Pytest
Grundlegende Verwendung der PySimple-Benutzeroberfläche
Grundlegende Verwendung von Python-F-String
Index der Verwendung bestimmter Pandas
Die Kraft der Pandas: Python
Hinweis zum Standardverhalten von collate_fn in PyTorch
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
Holen Sie sich die ID einer GPU mit geringer Speichernutzung
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Kombinieren Sie Listen zu einem DataFrame mit Pandas
[Hinweis] Import von Dateien in das übergeordnete Verzeichnis in Python
Extrahieren Sie den Wert von dict oder list als Zeichenfolge
So verbinden Sie den Inhalt der Liste mit einer Zeichenfolge
Notieren Sie sich, was Sie in Zukunft mit Razpai machen möchten
[Hinweis] Ein Shell-Skript, das die CPU-Auslastung eines bestimmten Prozesses in einer while-Schleife überprüft.
Der Tag des Dockerlaufs (Hinweis)
Ein Forscher eines Pharmaunternehmens fasste die grundlegenden Beschreibungsregeln von Python zusammen
pandas Ruft den Namen einer Spalte ab, die ein bestimmtes Zeichen enthält
Wenn Sie eine Liste mit dem Standardargument der Funktion angeben ...
Eine kleine Beispielnotiz von list_head
Python / Machen Sie ein Diktat aus einer Liste.
So ermitteln Sie die Speicheradresse des Pandas-Datenrahmenwerts
[Python] Machen Sie die Funktion zu einer Lambda-Funktion
Über den Grundtyp von Go
Ich habe die Grundoperation von Pandas im Jupyter Lab geschrieben (Teil 1)
Durchsuchen Sie das Verzeichnis und erstellen Sie eine Liste mit Verzeichnispfaden und Dateinamen
Python Hinweis: Map - Machen Sie dasselbe für jedes Element der Liste
Wie erstelle ich einen Crawler?
Suchthinweis: max (max (Liste)) darf nicht verwendet werden, wenn der Wert eines zweidimensionalen Arrays maximiert wird
Generieren Sie eine Liste aufeinanderfolgender Zeichen
Informationen zur Grundlagenliste der Python-Grundlagen
Ein Memorandum zum Erwerb der Grundprüfung für die Python3-Ingenieurzertifizierung
Ich habe die grundlegende Operation von Pandas im Jupyter Lab geschrieben (Teil 2).
[Python] Ein Hinweis, dass ich das Verhalten von matplotlib.pyplot zu verstehen begann
Die Geschichte des Exportierens eines Programms
[Python] Ein Programm, das den Inhalt der Liste nach links dreht
[Fabric] Ich war süchtig danach, Boolesche Werte als Argument zu verwenden. Notieren Sie sich also die Gegenmaßnahmen.
Erstellen Sie eine Liste der "Hobunsha 70th Anniversary Campaign" mit Selen in Amazon
Generieren Sie eine Liste mit der Anzahl der Tage im aktuellen Monat.
[Einführung in Python] So sortieren Sie den Inhalt einer Liste effizient mit Listensortierung
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
Ich möchte eine Liste in der Reihenfolge anderer Listen sortieren
Erhalten Sie eine Liste der Ergebnisse der Parallelverarbeitung in Python mit Starmap
Ein Hinweis zu den Funktionen der Standard-Linux-Bibliothek, die sich mit Zeit befasst
Erstellen Sie DNN-CRF mit Chainer und erkennen Sie den Akkordfortschritt der Musik
Ich habe einen Fehler beim Abrufen der Hierarchie mit MultiIndex von Pandas gemacht