[PYTHON] Verarbeiten von Memos, die häufig bei Pandas (Anfängern) verwendet werden

Einführung

Dieser Artikel ist ein Memorandum zur Datenanalyse von Python mit Pandas. Ich werde kurz die Grundlagen beschreiben. Die Variablen, denen die von Pandas gelesenen Daten zugewiesen werden, sind wie folgt.

Was ist Pandas?

Python-Datenanalysebibliothek

Pandas importieren

Importbeispiel (Im Folgenden wird das Verwendungsbeispiel in pd beschrieben.)

import pandas as pd

Lesen Sie die CSV-Datei und die Excel-Datei

an_data = pd.read_csv("<CSV-Dateiname>")
an_data = pd.read_excel("<Excel-Dateiname>")

Zeigen Sie 5 Zeilen mit gelesenen Daten an

Nützlich, wenn Sie den Inhalt der Daten überprüfen möchten

an_data.head()

Datenverbindung

Beschreibt den Vorgang beim Kombinieren der separat gelesenen Daten. Vorname der Daten: an_data1 Zweiter Datenname: an_data2

Union

Kombinieren Sie die Daten vertikal. (Wenn Sie ignore_index = True setzen, wird der Index neu zugewiesen.)

concat_data = pd.concat([an_data1, an_data2], ignore_index=True)

beitreten

Kombinieren Sie die Daten horizontal.

merge_data = pd.merge(an_data1, an_data2[[<Kombinieren Sie bestimmte Schlüssel>]], on="<Join-Schlüssel>", how=left)

Umgang mit Datumsdaten

Ändern Sie die Zeichenfolgenerkennungsdaten in Datumsdaten

an_data["date"] = pd.to_datetime(an_data["date"])

Nur Jahr und Monat extrahieren

an_data["Jahr Monat"] = an_data["date"].dt.strftime("%Y%m")

Für Daten wie Excel, die wie unten gezeigt sind, werden mysteriöse Zahlen gelesen. Machen Sie es möglich, mysteriöse Zahlen als Datumsdaten zu behandeln.

ch_time = pd.to_timedelta(an_data.loc[flg_num, "date"].astype("float"), unit="D") + pd.to_datetime("1900/01/01")

Wenn Sie eine Ebene höher verarbeiten, wird diese durch Bindestriche wie JJJJ-MM-TT getrennt. Es ist problematisch, wenn es mit einem durch Schrägstriche getrennten Datum gemischt wird. Vereinheitlichen Sie daher das Format (JJJJ-MM-TT).

ch_time = pd.to_datetime(an_data.loc[~flg_num, "date"])

Suchen Sie einen Wert ohne Daten

Hinzufügen eines Index mit Nulldaten

an_data.isnull().sum()

Enthält Nulldaten oder Ausgaben als Boolescher Wert (Achse ist 0 für vertikal, 1 für horizontal)

an_data.isnull().any(axis=0)

Daten durch beschreiben ausgeben

Die Anzahl der Daten, der Mittelwert, die Standardabweichung und die fünffache Zusammenfassung werden ausgegeben.

an_data.describe()

Datentypausgabe

<Daten lesen>.dtypes

Beispiel für eine Datenzusammenfassung nach groupby

Mit der Option as_index = False wird der Index, der automatisch mit dem von groupby angegebenen Namen erstellt wird, nicht erstellt.

an_data.groupby(["<Spezifische Spalte>"]).sum()["<Eine weitere Spalte>"]

Es ist möglich, mehrere spezifische Spalten und verschiedene Spalten anzugeben.

an_data.groupby(["<Spezifische Spalte A.>", "<Spezifische Spalte B.>"]).sum()["<Eine weitere Spalte A.">, "<Eine weitere Spalte b>"]
tmp = an_data.groupby(["<Spezifische Spalte>"]).count()["<Eine weitere Spalte>"]

Sie können den Durchschnitt usw. mit agg ausgeben

tmp = an_data.groupby("<Spezifische Spalte>").agg("mean", "median", "max", "min")["<Die Spalte, die Sie aggregieren möchten>"]

pivot_table

Erstellen Sie eine neue Tabelle

an_data = pd.pivot_table(an_data, index="<Spaltenname, den Sie indizieren möchten>", columns"<Der Spaltenname, der Spalte sein soll>", values=["<Spaltenwerte, die Sie in die Tabelle ausgeben möchten>"], aggfunc="", fill_value=0

Sortieren

aufsteigend = True ist in aufsteigender Reihenfolge

an_data.sort_values(by=["<Hauptsortierzielspalte>"], ascending=True)

Leerzeichen entfernen

an_data["test_val"] = an_data["test_val"].str.replace("  ", "")
an_data["test_val"] = an_data["test_val"].str.replace(" ", "")

Bestätigung der Daten durch eindeutige

print(len(pd.unique(an_data["val"])))
print(pd.unique(an_data["val"]))

Überprüfen Sie die Anzahl der Parameter, deren Wert ein numerischer Wert ist

flg_num = an_data["<Spaltenname>"].astype("str").str.isdigit()
flg_num.sum()

loc Etikettenbezeichnung

an_data.loc[:, [<column01>, <column02>]]
an_data.loc[[True, False, True, False], [False, False, True]]

iloc Nummerierung

an_data.iloc[[0:2], [2:4]]
an_data.iloc[[False, True, True], [False, True, False]]

Label umbenennen

Wenn Sie inplace = True angeben, werden die Originaldaten geändert

an_data.rename(columns={"<Name vor Änderung>":"<Name nach Änderung>"}, index={"<Name vor Änderung>":"<Name nach Änderung>"}, inplace=True)

Reindex

Da der Indexwert neu zugewiesen wird, wird der Index nicht abgedeckt.

an_data = an_data.reset_index(drop=False)

Drop-Verarbeitung

an_data = an_data.drop("<Gegenstände, die Sie fallen lassen möchten>", axis=1)

where Verwenden Sie wo, um den Wert des Elements zu ändern, das der Bedingung "nicht" entspricht Wenn im folgenden Beispiel der Wert von nicht 5 oder weniger beträgt, wird der Wert von in 1 geändert.

an_data["<Zielgegenstand>"] = an_data["<Zielgegenstand>"].where(an_data["<Vergleichselemente>"]<5, 1)

relativedelta

delta = relative_delta(dtime1, dtime2)
Der Inhalt von Delta ist die Differenz zwischen dtime1 und dtime2 (dtime1 ist das späteste Datum).)

Fehlende Werte entfernen

an_data = an_data.dropna(subsent=["<Spaltenname, in dem der fehlende Wert vorhanden ist>"])

Der Austausch des fehlenden Teils erfolgt wie folgt (gefüllt mit 0)

an_data = an_data.fillna(0)

Eine Bestätigung ist unter möglich

an_data.isna().sum()

CSV-Ausgabe

an_data.to_csv("", index=False)

Beispiel für die Grafikausgabe

Importbeispiel für eine Grafikausgabebibliothek (Im Folgenden wird das Verwendungsbeispiel in plt beschrieben.) Darüber hinaus beschreibt die zweite Zeile ein Beispiel für die Verwendung mit einem Jupyter-Notebook.

import matplotlib.pyplot as plt
%matplotlib inline

Lesen Sie die zu zeichnenden Daten (aufgelistet in der Reihenfolge der horizontalen Achse, vertikalen Achse, Option). Zumindest ein Etikett sollte angebracht sein

plt.plot(an_data.index, an_data['<Elemente auf der vertikalen Achse>'], label='label-1')
plt.plot(an_data.index, an_data['<Elemente auf der vertikalen Achse>'], label='label-2')
plt.plot(an_data.index, an_data['<Elemente auf der vertikalen Achse>'], label='label-3')

Zeichnen Sie die gelesenen Daten in ein Diagramm

plt.legend()

Recommended Posts

Verarbeiten von Memos, die häufig bei Pandas (Anfängern) verwendet werden
Zusammenfassung der häufig verwendeten Grammatik bei Pandas
Zusammenfassung der häufig verwendeten Methoden bei Pandas
Einstellungen, die häufig in Jupyter verwendet werden
Zusammenfassung der von Pandas 2 häufig ausgeführten Prozesse (Datenreferenz, Bearbeitungsvorgang)
Ich habe versucht, den in Pandas häufig verwendeten Code zusammenzufassen
Pandas Grundlagen für Anfänger ① Lesen & Verarbeiten
Pandas Grundlagen für Anfänger ⑧ Ziffernverarbeitung
Festplattenbezogene Befehle, die häufig in Ubuntu verwendet werden (Hinweise)
Sammlung von Numpy, Pandas Tipps, die häufig auf dem Feld verwendet werden
Zusammenfassung dessen, was bei 100 Pandas-Schlägen verwendet wurde (# 1 ~ # 32)
Techniken, die häufig bei der Python-Kurzcodierung verwendet werden (Notepad)
Code, der häufig in Python / Django-Apps verwendet wird [Präfekturen]
Ein Memorandum of Method, das häufig bei der Analyse von Daten mit Pandas verwendet wird (für Anfänger)
Ein Memorandum über Methoden, die häufig beim maschinellen Lernen mit Scikit-Learn (für Anfänger) verwendet werden.
Eine Code-Sammlung, die häufig in persönlichem Python verwendet wird
Dateiverarbeitung in Python
Lerne Pandas in 10 Minuten
Datensätze mit Pandas verarbeiten (1)
Datensätze mit Pandas verarbeiten (2)
Multithread-Verarbeitung in Python
UnicodeDecodeError in pandas read_csv
Textverarbeitung mit Python
Verarbeitung in Python beenden
Codefragmente, die häufig bei der Verarbeitung von Videos mit Google Colaboratory verwendet werden
Befehle, die häufig in der Entwicklungsumgebung während der Python-Implementierung verwendet werden
[Erklärung für Anfänger] Einführung in die Faltverarbeitung (erklärt in TensorFlow)
[Erklärung für Anfänger] Einführung in die Pooling-Verarbeitung (erklärt in TensorFlow)
Ich habe versucht, die im Geschäftsleben häufig verwendeten Befehle zusammenzufassen