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
Über Tabellen iterieren mit Pandas?
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
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
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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.
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.
generiere aus der Datumsspalte eine neue Spalte, die nur das Datum ohne Zeit enthält und mach darüber ein groupby
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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)
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Bin auf ein weiteres Problem gestossen und zwar möchte ich einen Graphen mit Matplotlib in meinem GUI plotten. Das habe ich hinbekommen jedoch schaffe ich es nicht die Daten zu aktualisieren wenn ich im GUI andere Daten auswähle, also irgendwie funktioniert das clear nicht. entweder wird gar nichts mehr geplottet oder es wird nichts am plot geändert. Weiss jemand wo ich das clearen muss oder was ich genau falsch mache?
Code: Alles auswählen
...Vorheriger Code irrelevant
if self.RadioButton1.isChecked() == True:
axislabel = 'Temperatur [°C]'
canvas.plot(u,v,x,axislabel)
print("Radiobutton1")
if self.RadioButton2.isChecked() == True:
axislabel = 'Regendauer [min]'
canvas.plot(u,z,x, axislabel)
print("Radiobutton2")
self.log.append("Aktualisiert: ")
self.log.append(time.strftime("%d.%m.%Y %H:%M:%S"))
class Canvas(FigureCanvas):
def __init__(self, parent = None, width =7, height = 7, dpi =100):
fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
FigureCanvas.__init__(self, fig)
self.setParent(parent)
#self.plot()
def plot(self,u,o,x, axislabel):
ax = self.figure.add_subplot(111)
ax1 = self.figure.add_subplot(111)
ax.clear()
ax1.clear()
ax1.set_ylabel('Personenfrequenz', color='b')
ax1.tick_params('y', colors='b')
ax1.set_xlabel('Datum')
ax.set_ylabel(axislabel, color='r')
ax.tick_params('y', colors='r')
ax1 = ax.twinx()
ax.plot(u,o, "r-")
ax1.plot(u,x)
plt.show()
- __blackjack__
- User
- Beiträge: 13925
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@Rodrigo: Ein komplettes, lauffähiges, minimales Beispiel wäre nett, damit man das ausprobieren kann.
Das ``== True`` mach man übrigens nicht. Du brauchst da einen Wahrheitswert. `isChecked()` liefert einen Wahrheitswert. Der Vergleich mit `True` hat als Ergebnis genau den Wahrheitswert den `isChecked()` bereits zurückgegeben hat. Und wenn man das Gegenteil testen wollen würde, gibt es ``not`` zum negieren des `isChecked()`-Ergebnis.
In der `plot()`-Methode fügst Du anscheinend auch jedes mal einen neuen Subplot hinzu und clearst *den* – der ist doch aber zu dem Zeitpunkt noch neu, und damit leer.
Das ``== True`` mach man übrigens nicht. Du brauchst da einen Wahrheitswert. `isChecked()` liefert einen Wahrheitswert. Der Vergleich mit `True` hat als Ergebnis genau den Wahrheitswert den `isChecked()` bereits zurückgegeben hat. Und wenn man das Gegenteil testen wollen würde, gibt es ``not`` zum negieren des `isChecked()`-Ergebnis.
In der `plot()`-Methode fügst Du anscheinend auch jedes mal einen neuen Subplot hinzu und clearst *den* – der ist doch aber zu dem Zeitpunkt noch neu, und damit leer.
“Java is a DSL to transform big Xml documents into long exception stack traces.”
— Scott Bellware
— Scott Bellware