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.
Die folgenden Betriebsmethoden werden in diesem Artikel beschrieben.
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.
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))
[** 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.
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.
So ermitteln Sie den Datentyp für jedes Etikett:
display(data["age"].dtype )
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())
[** 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())
Verwenden Sie die isnull-Methode und die sum-Methode, um die Anzahl der fehlenden Daten zu überprüfen.
display(data.isnull().sum())
[** 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))
[** 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]
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"))
[** 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 ()
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))
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]
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))
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))
[Referenz]
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.
[** 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]
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))
Ich konnte bestätigen, dass "unbekannt" in den fehlenden Teil des Geschlechts eingegeben wurde.
[Referenz]
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))
[Referenz]
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))
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.
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())
[Referenz]
Offizielles Dokument von Pandas
Recommended Posts