Seite 1 von 1
Pandas Series
Verfasst: Mittwoch 9. Dezember 2020, 21:55
von Moschi96
Hallo zusammen,
Ich bin grade etwas ratlos. Ich habe eine Pandas Series mit Temperatur Werten die für ein Jahr stündlich aufgelistet sind.
Jetzt möchte ich diese Series mit 7860 Einträgen in ein DataFrame übergeben, welches für je 24 Stunden diese Temperaturen in ein columns packt.
Hat einer von euch eine Idee? Ich lese mir jetzt seit 3 Tagen die Augen aus und weiß immer noch nicht weiter. Mit einem loop hat es nicht geklappt.
Ich stehe noch ziemlich am Anfang meiner Python Karriere und weiß eventuell nicht, ob ich nicht schlichtweg falsch gesucht habe, falls es so ist und ich es einfach nicht sehe, sorry.
Danke für eure Hilfe.
Beste Grüße
Nils
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 08:29
von Jankie
Du hast also ein DataFrame mit einer Spalte "Time" in der stündliche Zeitangaben sind und eine Spalte in der für jede Stunde die gemessene Temperatur steht und du möchtest den Mittelwert pro Trag herausfinden oder die Werte einfach nur aufsummieren?
Also sowas?:
Code: Alles auswählen
Time Temperatur
0 2020-01-01 00:00:00 3
1 2020-01-01 01:00:00 1
2 2020-01-01 02:00:00 1
3 2020-01-01 03:00:00 31
4 2020-01-01 04:00:00 21
... ... ...
8756 2020-12-30 20:00:00 20
8757 2020-12-30 21:00:00 25
8758 2020-12-30 22:00:00 24
8759 2020-12-30 23:00:00 2
8760 2020-12-31 00:00:00 25
und willst sowas?:
Code: Alles auswählen
Temperatur
Time
2020-01-01 16.166667
2020-01-02 17.000000
2020-01-03 15.250000
2020-01-04 13.166667
2020-01-05 17.625000
... ...
2020-12-27 14.125000
2020-12-28 15.666667
2020-12-29 14.666667
2020-12-30 16.041667
2020-12-31 25.000000
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 08:48
von Moschi96
1 0.8
2 -1.9
3 -4.0
4 -4.4
5 -4.7
...
8756 8.0
8757 7.6
8758 7.5
8759 6.1
8760 3.9
Name: t, dtype: float64
Ich habe eher so etwas und möchte es in der Form
Index "1" "2" "3" ........"3760"
1. 2. 4. 5. ........13
2
3
4
5
.
.
.
24
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 10:12
von Jankie
Also hast du eine Series mit Temperaturwerten und eine mit Zeitangaben, die würdest du gerne zusammenfügen? Es wäre hilfreich wenn du bisschen genauer dein Problem beschreiben würdest, also was für Daten du hast, wie die aussehen, was du damit machen willst, wie es nachher aussehen soll. Je mehr Infos desto besser kann sich jemand da hineinversetzen. So kann ich da leider nichts mit Anfangen.
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 12:38
von __blackjack__
Also wenn ich es richtig verstanden habe gibt's Messwerte für ein Jahr, 24 Pro Tag, und jetzt soll DataFrame mit einem Tag pro Spalte daraus werden.
Wofür wird das denn gebraucht? Zum weiterverarbeiten ist die ”Langform” üblicherweise besser.
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 13:31
von Moschi96
Ich habe vor von jedem Tag, also jedes 24-H Intervall die Durchnschnittstemp. und das Intervall der min(),max() Temp. in ein Diagramm aufzutragen und mit weiteren Messwerten zu vergleichen. Ich habe nur eine Series mit Temperaturen.
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 14:29
von Jankie
So ganz habe ich das glaube ich immer noch nicht verstanden. Möchtest du also eine Dataframe wo auf der einen Achse die Stunden von 0-23 stehen und auf der anderen Achse welcher Tag?
Also so in die Richtung (hab jetz für die Temperatur irgendwelche random Nummern genommen):
Code: Alles auswählen
0.0 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 ... 350.0 351.0 352.0 353.0 354.0 355.0 356.0 357.0 358.0 359.0 360.0 361.0 362.0 363.0 364.0
0 20 2 0 11 11 31 30 0 26 20 30 8 8 17 4 ... 25 8 7 11 1 21 9 4 10 7 30 15 12 21 17
1 23 25 17 27 26 6 17 12 12 17 26 26 29 20 16 ... 19 1 14 27 3 17 19 15 3 25 10 25 1 31 12
2 4 25 18 26 25 9 14 16 27 10 3 17 14 7 31 ... 21 23 1 11 16 7 30 30 14 23 17 19 24 25 20
3 8 3 0 16 14 9 12 0 6 9 5 10 25 30 31 ... 28 27 14 7 9 10 17 16 29 16 16 25 13 21 22
4 5 9 18 2 6 1 22 31 18 24 10 27 26 27 25 ... 18 25 10 11 3 29 13 7 11 9 31 22 19 26 25
5 14 18 5 29 20 7 18 3 1 15 1 23 24 5 13 ... 21 3 28 18 22 28 14 17 8 14 28 0 11 25 15
...
20 16 0 14 8 24 2 27 28 2 3 2 5 14 10 11 ... 28 4 23 0 30 2 20 30 26 19 27 25 8 14 7
21 27 12 22 25 29 2 11 20 23 20 12 19 4 10 19 ... 4 3 3 4 5 22 29 26 4 13 22 29 9 3 30
22 0 4 6 18 20 27 29 9 3 25 14 28 26 3 22 ... 22 28 14 6 3 28 15 23 10 22 18 25 7 29 30
23 19 16 13 31 4 16 7 12 15 31 10 31 3 17 14 ... 26 5 21 1 30 13 18 2 1 7 25 25 28 5 8
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 14:59
von __blackjack__
@Moschi96: Vergiss das mit dem umformatieren — die Daten sind schon im richtigen Format. Gruppiere nach Tagen und berechne was Du berechnen willst.
Code: Alles auswählen
In [270]: temperature
Out[270]:
2019-01-01 00:00:00 -1
2019-01-01 01:00:00 -1
2019-01-01 02:00:00 -4
2019-01-01 03:00:00 -6
2019-01-01 04:00:00 -7
...
2019-12-31 19:00:00 -265
2019-12-31 20:00:00 -266
2019-12-31 21:00:00 -264
2019-12-31 22:00:00 -263
2019-12-31 23:00:00 -260
Freq: H, Name: Temperature, Length: 8760, dtype: int64
In [271]: temperature.groupby(temperature.index.date).agg(["mean", "min", "max"])
Out[271]:
mean min max
2019-01-01 -9.791667 -17 -1
2019-01-02 -15.458333 -21 -10
2019-01-03 -18.791667 -32 -9
2019-01-04 -12.625000 -25 -4
2019-01-05 -7.000000 -18 5
... ... ... ...
2019-12-27 -247.500000 -253 -241
2019-12-28 -257.916667 -267 -243
2019-12-29 -256.083333 -262 -247
2019-12-30 -260.750000 -270 -251
2019-12-31 -262.375000 -270 -255
[365 rows x 3 columns]
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 15:21
von Jankie
@__blackjack__: So wie ich das verstehe hat er gar keine Zeitangaben als extra Spalte, sondern nur die Spalte der Temperaturangaben.
Re: Pandas Series
Verfasst: Donnerstag 10. Dezember 2020, 15:38
von __blackjack__
@Jankie: Ja und? Ich hatte auch keine Zeitangaben sondern nur ein Array mit Zufallswerten. Wenn man keinen passenden Index hat, erstellt man sich den halt.