Seite 1 von 1

Über Tabellen iterieren mit Pandas?

Verfasst: Montag 15. April 2019, 14:04
von Rodrigo
Guten Tag Zusammen

Ich habe folgendes Problem:

Ich habe eine Tabelle in folgendem Format: (sample)

fk_zaehler datum ... fuss_out objectid
288115 U15G3063865 2019-03-17T07:00:00 ... 4.0 7917228
243741 Y2G14045587 2019-03-09T15:00:00 ... 0.0 7872854
167301 YSH18065716 2019-02-11T02:00:00 ... 1.0 7796414
185801 U15G3063873 2019-02-22T09:30:00 ... 6.0 7814913
139742 U15G3063870 2019-02-12T04:30:00 ... 0.0 7768855
227022 Y2H18106792 2019-03-06T05:00:00 ... 0.0 7856135
280229 U15G3104445 2019-03-19T22:00:00 ... 5.0 7909342
279192 Y2G14045586 2019-03-20T12:30:00 ... 0.0 7908305
196636 Y2G13124876 2019-02-23T10:00:00 ... 0.0 7825749
135939 U15G3063872 2019-02-08T22:00:00 ... 19.0 7765052

mit ca. 300'000 Zeilen und ca 8 Spalten. Die Tabelle beinhaltet Werte von Fussgänger und Fahrradzählsysteme der Stadt Zürich im Viertelstundentakt. Da mich aber lediglich die Werte für jeweils den ganzen Tag interessieren, würde ich diese gerne zusammenfassen. Das heisst mich interessiert in der Kolumne "datum" nur YYYY-MM-DD. Leider steht da ja noch die Zeit dahinter.

Frage:

Wie kann ich über diese Tabelle iterieren, und alle werte von zum Beispiel "fuss_out" für jeweils einen Tag zusammenzählen?
Stecke hier irgendwie fest und wäre froh wenn mir jemand helfen könnte.

Grüsse

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Montag 15. April 2019, 14:58
von ThomasL
Dafür ist das Paket Pandas die beste Wahl.
http://pandas.pydata.org/pandas-docs/stable/

Tabelle einlesen mit z.B. pandas.read_csv()
die Datumsspalte in ein DateTime Object umwandeln
und dann ein .groupby über das Datum

Es gibt viele gute Tutorials auf Youtube, z.B dieses https://www.youtube.com/watch?v=vmEHCJofslg

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Montag 15. April 2019, 15:47
von Rodrigo
Danke für die rasche Antwort.
Wenn ich die Datums Kolumne in ein DateTime-Object umwandle, ist aber immer noch die Zeit hintendran also kann ich das groupby noch nicht anwenden weil sie sonst auch nach zeit gruppiert werden und nicht nach Tag.

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Montag 15. April 2019, 15:57
von ThomasL
generiere aus der Datumsspalte eine neue Spalte, die nur das Datum ohne Zeit enthält und mach darüber ein groupby

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Dienstag 16. April 2019, 08:52
von Rodrigo
Genau das schaffe ich leider nicht. Den Spaltenwert so zu beschneiden dass nur noch das Datum übrigbleibt

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Dienstag 16. April 2019, 12:59
von ThomasL
Habe mal deine Beispieldaten in eine Textdatei kopiert

Code: Alles auswählen

import pandas as pd

# deine Beispieldaten ohne ... in doppelter Anzahl
df = pd.read_csv('sample.txt', delimiter=' ', names=['S1', 'S2', 'Datum', 'S4', 'S5'], parse_dates=[2])

# summieren der Tageswerte der Spalte S4
# entweder so
df['Tag'] = df.Datum.dt.date
summe = df.groupby(['Tag']).S4.sum().to_list()

# oder ohne zusätzliche Spalte direkt so
summe = df.groupby(df.Datum.dt.date).S4.sum().to_list()
print(summe)

Re: Über Tabellen iterieren mit Pandas?

Verfasst: Dienstag 16. April 2019, 15:37
von Rodrigo
Super, so funktionierts. Besten Dank für deine Bemühungen!