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.
Python-Datenanalysebibliothek
Importbeispiel (Im Folgenden wird das Verwendungsbeispiel in pd beschrieben.)
import pandas as pd
an_data = pd.read_csv("<CSV-Dateiname>")
an_data = pd.read_excel("<Excel-Dateiname>")
Nützlich, wenn Sie den Inhalt der Daten überprüfen möchten
an_data.head()
Beschreibt den Vorgang beim Kombinieren der separat gelesenen Daten. Vorname der Daten: an_data1 Zweiter Datenname: an_data2
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)
Kombinieren Sie die Daten horizontal.
merge_data = pd.merge(an_data1, an_data2[[<Kombinieren Sie bestimmte Schlüssel>]], on="<Join-Schlüssel>", how=left)
Ä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"])
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)
Die Anzahl der Daten, der Mittelwert, die Standardabweichung und die fünffache Zusammenfassung werden ausgegeben.
an_data.describe()
<Daten lesen>.dtypes
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
aufsteigend = True ist in aufsteigender Reihenfolge
an_data.sort_values(by=["<Hauptsortierzielspalte>"], ascending=True)
an_data["test_val"] = an_data["test_val"].str.replace(" ", "")
an_data["test_val"] = an_data["test_val"].str.replace(" ", "")
print(len(pd.unique(an_data["val"])))
print(pd.unique(an_data["val"]))
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]]
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)
Da der Indexwert neu zugewiesen wird, wird der Index nicht abgedeckt.
an_data = an_data.reset_index(drop=False)
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
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).)
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()
an_data.to_csv("", index=False)
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