[PYTHON] Zusammenfassung der häufig verwendeten Grammatik bei Pandas

Wir haben die Grammatiken zusammengefasst, die häufig in der Python-Datenanalysebibliothek "pandas" verwendet werden.

2019-02-18 Die Methode zur Anzeigevergrößerung wurde aktualisiert
2018-05-06 Kommentare reflektieren (pd.set_option('display.width', 100))
2018-02-14 Verbindungskorrektur
2017-11-01 df.fillna(method='ffill')Die Beschreibung von wurde korrigiert
2017-06-09 Korrektur defekter Links usw.
2016-10-10 Beispiele bearbeiten
2016-06-21 df.rolling, pd.date_range, pd.datetime, df.Pivot hinzufügen, andere Beispiele hinzufügen

** Umgang mit CSV-Dateien **

** pd.read_csv ** (lesen)

Es stehen viele Optionen zur Verfügung, sodass Sie alles andere als CSV laden können.

import pandas as pd

df = pd.read_csv('some.csv')

Beispiel: Beim Lesen mehrerer Spalten (Datum und Stunde) zusammen als Datums- / Uhrzeitindex ( Datum_Stunde)

df = pd.read_csv('some.csv', parse_dates={'date_hour':['date', 'hour']}, index_col='date_hour')

Beispiel: Wenn eine Datei mit Japanisch und -- als fehlende Daten behandelt wird

df = pd.read_csv('some.csv', encoding='Shift_JIS', na_values='--')
option Bedeutung
index_col Spaltenname als Index
parse_dates Spaltenname, der als Datum / Uhrzeit-Typ gelesen werden soll (Liste oder Wörterbuch)
date_parser parse_Selbst erstellte Funktion zum Lesen der durch Datumsangaben angegebenen Spalte
na_values Zeichenfolge (Liste) als fehlender Wert
encoding 'Shift_JIS'Eine solche
sep Trennzeichen (' ': Bei Platz)

** df.to_csv ** (schreiben)

Es ist furchtbar einfach, in eine CSV-Datei zu schreiben. Es gibt viele Möglichkeiten.

df.to_csv('some2.csv')

Beispiel: Wenn Sie keinen Index benötigen

df.to_csv('some2.csv', index=None)

Beispiel: Bei der Benennung des Index

df.to_csv('some2.csv', index_label='date')

** Umgang mit fehlenden Werten **

** df.dropna ** (gelöscht)

Zeile (Index) mit fehlendem Wert (nan) löschen

df = df.dropna()

Beispiel: Wenn eine bestimmte Spalte (temp oder depth) einen fehlenden Wert hat, löschen Sie diese Zeile (Ignorieren Sie fehlende Werte außer "Temp" und "Tiefe".)

df = df.dropna(subset=['temp','depth'])

** df.fillna ** (ausfüllen)

Beispiel: Füllen Sie die Lücken mit einer Konstanten (0) aus.

df = df.fillna(0)

Beispiel: Füllen des vorderen (hinteren) Lochs (2017 / 11/01 Korrigiert, um @ hadacchis Kommentar wiederzugeben)

df = df.fillna(method='ffill')  #Füllen Sie die leere Nan 1 aus.0 nan -> nan 1.0 1.0 (forward  =Indexerhöhungsrichtung = DataFrame-Abwärtsrichtung)
df = df.fillna(method='bfill')  #rückwärts füllen die Lücke nan 1.0 nan -> 1.0 1.0 nan (backward =Index abnehmende Richtung = DataFrame nach oben)

** df.interpolieren ** (interpolieren)

Es stehen viele Interpolationsmethoden zur Verfügung.

df = df.interpolate(method='index')

** df.resample ** (resample)

Ändern Sie die Auflösung (Häufigkeit) von Zeitreihendaten. Wenn ich es benutze, reduziere ich oft die Anzahl der Daten, sodass ich es als Funktion für die Komprimierung erkenne.

Beispiel: Konvertieren Sie stündliche Daten in den täglichen Durchschnitt (fehlende Werte und Durchschnitt ignorieren)

#daily = hourly.resample('D', how='mean') <-Alte Schreibweise
daily = hourly.resample('D').mean()

Beispiel: Wenn der Wert auf 00:00 gesetzt ist, Sie aber möchten, dass er 12:00 ist

daily = hourly.resample('D', loffset='12H').mean()

** Zeitformat **

Charactor Bedeutung Bemerkungen
M Mond 0.5M で半Mondとはならない
D Tag Ich mache etwas mit 15D
H Zeit 12H は12Zeit
T or min Protokoll 30min で30Protokoll

** df.rolling ** (gleitender Durchschnitt)

Nehmen Sie den gleitenden Durchschnitt, den Maximalwert usw.

Beispiel: 3-Term gleitender Durchschnitt (center = True und platzieren Sie den Wert in der Mitte (in diesem Fall 2. Term))

ma3 = hourly.rolling(3, center=True).mean()

** Umgang mit Zeit **

pd.date_range

Erstellen Sie einfach aufeinanderfolgende datetime-Variablen

date = pd.date_range('2012-1-1', '2012-1-2', freq='D')

Beispiel: Da oben der Zeitstempel von Pandas angegeben ist, kehren Sie zur datetime-Variablen von Python zurück

date = pd.date_range('2012-1-1', '2012-1-2', freq='D').to_pydatetime()

pd.datetime

Ich brauche keine import datetime

date = pd.datetime(2012, 1, 1, 0, 0, 0)

** Andere häufig verwendete Funktionen **

** df.describe ** (zusammenfassende Statistik)

Sehen Sie sich Statistiken wie die Anzahl der Daten in jeder Spalte, den Mittelwert und die Varianz kurz an.

print df.describe()

** df.groupby ** (Aggregat)

Daten können einfach durch Gruppieren nach Spalten verarbeitet werden (Konvertieren des Spaltenwerts, damit er als Index behandelt werden kann). Es ist einfacher zu verstehen als zu stapeln und zu entstapeln.

Beispiel: Gruppieren Sie nach mehreren Spalten ("Typ" und "Zeit") und nehmen Sie den Durchschnitt jeder Gruppe.

grouped_mean = df.groupby(['type','time']).mean()

df.pivot(1D→2D)

Bild der Umwandlung eines eindimensionalen Arrays in ein zweidimensionales Array

temp2d = df.pivot(index='y', columns='x', values='temp')

Andere Tipps

DataFrame-Erstellung (Wörterbuchtyp)

Wenn Sie einen DataFrame aus einer anderen Datei als einer Datei erstellen möchten, erstellen Sie ein Wörterbuch und laden Sie es.

data = {'a':[0, 1], 'b':[2, 3]}

df = pd.DataFrame(data)

Beispiel: Beim Indizieren des obigen Beispiels

date = pd.date_range('2012-1-1', '2012-1-2', freq='D')

df = pd.DataFrame(data, index=date)

Erweiterung der Verpackungsbreite beim Drucken

Wenn Sie nicht möchten, dass die Anzeige beim Drucken eines Datenrahmens mit einer großen Anzahl von Spalten umbrochen wird, können Sie die Anzeigebreite ändern.

pd.set_option('display.width', 100)
or
pd.set_option('display.max_columns', 100)  #Kann durch die Anzahl der Spalten gesteuert werden

#pd.set_option('line_width', 100)  # line_Breite ist veraltet oder abgeschafft (2018/05/06 Thanks to @dhwty)

print df  #Umschließt nicht bis zu 100 Zeichen (oder Spalten)

Referenzlink

Recommended Posts

Zusammenfassung der häufig verwendeten Grammatik bei Pandas
Zusammenfassung der häufig verwendeten Methoden bei Pandas
Verarbeiten von Memos, die häufig bei Pandas (Anfängern) verwendet werden
Zusammenfassung dessen, was bei 100 Pandas-Schlägen verwendet wurde (# 1 ~ # 32)
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
Installationszusammenfassung, die häufig für AI-Projekte verwendet wird
Zusammenfassung der häufig verwendeten Befehle in matplotlib
Festplattenbezogene Befehle, die häufig in Ubuntu verwendet werden (Hinweise)
Grammatikzusammenfassung von blockdiag
Zusammenfassung der von Pandas 1 häufig ausgeführten Prozesse (CSV-, Excel-Datei-bezogene Vorgänge)
Zusammenfassung der in Command Line Vol.8 verwendeten Tools
Zusammenfassung der in Command Line Vol.5 verwendeten Tools
Zusammenfassung der beim maschinellen Lernen verwendeten Bewertungsfunktionen
Code, der häufig in Python / Django-Apps verwendet wird [Präfekturen]
Sammlung von Numpy, Pandas Tipps, die häufig auf dem Feld verwendet werden
Zusammenfassung der persönlichen Notizen von Pandas
Lerne Pandas in 10 Minuten
Eine Code-Sammlung, die häufig in persönlichem Python verwendet wird
UnicodeDecodeError in pandas read_csv
Zusammenfassung der beim Extrahieren von Daten verwendeten Pandas-Methoden [Python]
Ich habe versucht, die im Geschäftsleben häufig verwendeten Befehle zusammenzufassen
Zusammenfassung zum Schreiben von in gRPC verwendeten .proto-Dateien
pandas Matplotlib Zusammenfassung nach Verwendung
Was ist neu in Python 3.10 (Zusammenfassung)
Timer in while-Schleife verwendet
Python Pandas Studie aktuelle Zusammenfassung
Wird in EDA für maschinelles Lernen verwendet
Zusammenfassung der Gesichtserkennung in Python
Häufig verwendete Befehle in virtualenv
Zusammenfassung der grundlegenden Verwendung von Pandas
Was ist neu in Python 3.9 (Zusammenfassung)
Tauschen Sie Spalten in Pandas-Datenrahmen aus
Zusammenfassung der Standardeingabe von Python, die in Competition Pro verwendet werden kann