Seite 1 von 1

konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 07:52
von Scamander_1920
Ich habe ein pandas DataFrame, bei dem der Index eine Zeit ist und ich 4 weiter Einträge pro Zeile habe.

Code: Alles auswählen

                      	a                      b                     c             d 
Zeit                                                                    
03-05-2021 16:21:49  5348.0            535.55             0.0        NaN
03-05-2021 16:22:20  5289.0            431.76             0.0        NaN
03-05-2021 17:22:50  5255.0            421.67             0.0        NaN
03-05-2021 17:23:20  5218.0            431.44             0.0        NaN
03-05-2021 17:23:50  5153.0            440.81             0.0        NaN
Wenn ich dieses Dataframe jetzt in einer Grafik darstellen will, dann ist sie total verzerrt, weil zwischen den Indexen nicht immer der gleiche Zeitabstand liegt.

Gibt es in pandas eine Methode solche Lücken zu füllen, um damit einen richtigen Graphen anzeigen zu können?

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 08:11
von __deets__
Statt die Lücken zu füllen benutzt man einfach die Zeitstempel für die x-Achse. Dadurch platziert matplotlib die an der korrekten Stelle.

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 08:56
von Scamander_1920
Muss ich die Zeit von dem String in ein Objekt der Bibiliothek datetime wandeln oder reicht schon der String?
Kann das Bokeh auch?

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 09:04
von Sirius3
Natürlich muß das eine Zeit sein, also vom Typ Datetime und nicht irgendein String. Das Umwandeln sollte eigentlich schon beim Laden erledigt sein.

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 11:54
von Scamander_1920
Sirius3 hat geschrieben: Dienstag 4. Mai 2021, 09:04 Natürlich muß das eine Zeit sein, also vom Typ Datetime und nicht irgendein String. Das Umwandeln sollte eigentlich schon beim Laden erledigt sein.
Das umwandeln wurde beim Laden nicht automatisch gemacht und auch

Code: Alles auswählen

df.index.astype(datetime.datetime)
) hat nichts gebracht:
Bild

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 12:06
von Sirius3
Dann liegt doch der Fehler beim Laden, und den Code solltest Du uns zeigen.

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 12:45
von Scamander_1920

Code: Alles auswählen

csv =pd.read_csv("../stats.csv",sep=";",index_col="Zeit",decimal=".")
csv.index.astype(datetime.datetime)
csv.plot()
plt.show()
print(csv)
und die stats.csv sieht so aus:

Code: Alles auswählen

Zeit;a;b;c;d
03-05-2021 16:21:49;5348.0;535.55;0.0;
03-05-2021 16:22:20;5289.0;431.76;0.0;
03-05-2021 16:22:50;5255.0;421.67;0.0;
03-05-2021 16:23:20;5218.0;431.44;0.0;

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 12:52
von __deets__
Du kannst Pandas sagen, dass eine Spalte ein Datum enthält. Und sogar das Format angeben. Schau mal in die Doku.

Re: konstante Indexabstände pandas

Verfasst: Dienstag 4. Mai 2021, 13:22
von Scamander_1920
Danke, jetzt hab ichs :).