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
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) |
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')
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'])
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)
Es stehen viele Interpolationsmethoden zur Verfügung.
df = df.interpolate(method='index')
linear
, time
, index
, values
, nearest
, zero
, slinear
, quadratic
, cubic
, barycentric
, krogh
, polynomial
, spline
, piecewise_polynomial
, pchip
Ä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()
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 |
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()
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)
Sehen Sie sich Statistiken wie die Anzahl der Daten in jeder Spalte, den Mittelwert und die Varianz kurz an.
print df.describe()
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')
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)
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)
Recommended Posts