Seite 1 von 1

Pandas Dataframe mit Unixtime in Datum umwandeln

Verfasst: Samstag 28. August 2021, 22:30
von py-noob
Hallo, ich habe ein Pandas Dataframe mit Unix Timestamps und möchte eine neue Spalte mit dem entsprechenden Datum hinzufügen.
1380735000 96,9 8,5 6
1380755700 92,0 0,9 1
1380758400 90,1 1,0 2
1380762900 90,1 3,4 10
1380790800 84,0 8,1 4
1380791700 85,0 7,7 5
1380795300 82,8 5,9 1
Ein einzelnen Eintrag kann ich mit

Code: Alles auswählen

datetime.utcfromtimestamp(df.iloc[1,0]).strftime('%Y-%m-%d %H:%M') 
umwandeln.
Wenn ich jedoch versuche eine neue Spalte mit den aus den Timestamps abgeleiteten Datum zu erzeugen

Code: Alles auswählen

df['neu'] = datetime.utcfromtimestamp(df.iloc[:,0]).strftime('%Y-%m-%d %H:%M')
bekomme ich die Fehlermeldung
cannot convert the series to <class 'int'>
Kann mir jemand verraten, wo das Problem liegt? Ich würde mal raten, dass es was mit der Pandas Series die df.iloc[1,0] übergibt zu tun hat?
Laut googlesuche kann bei der Fehlermeldung die Verwendung von astype helfen, was jedoch in meinem Fall nicht erfolgreich war.
Vermutlich ist die Lösung total simpel, aber ich stehe gerade ein wenig auf dem Schlauch.

Schonmal vielen Dank im Voraus!

Re: Pandas Dataframe mit Unixtime in Datum umwandeln

Verfasst: Sonntag 29. August 2021, 13:35
von Sirius3
`datetime.utcfromtimestamp` kann nur mit einzelnen Zahlen umgehen, nicht mit pandas-Series.
Dazu braucht es pandas.to_datetime:

Code: Alles auswählen

df['neu'] = pd.to_datetime(df['alt'], unit='s')

Re: Pandas Dataframe mit Unixtime in Datum umwandeln

Verfasst: Sonntag 5. September 2021, 23:33
von py-noob
Sirius3 hat geschrieben: Sonntag 29. August 2021, 13:35 `datetime.utcfromtimestamp` kann nur mit einzelnen Zahlen umgehen, nicht mit pandas-Series.
Dazu braucht es pandas.to_datetime:
Danke für deine Antwort! Gegenüber meiner Notlösung mit einer Schleife jedes Element zu durchlaufen, ist das ca. 1000x schneller (keine Übertreibung).
Da stellt sich mir aber die Frage, was man macht, wenn eine benötigte Funktion nicht mit einem Dataframe/Array umgehen kann und es auch keine Alternative in der Pandas-Library gibt.

Re: Pandas Dataframe mit Unixtime in Datum umwandeln

Verfasst: Montag 6. September 2021, 07:23
von Sirius3
Ohne zu wissen, was denn das für eine Funktion ist, ist es müßig, sich darüber Gedanken zu machen.

Re: Pandas Dataframe mit Unixtime in Datum umwandeln

Verfasst: Montag 6. September 2021, 22:51
von py-noob
Naja, ich hatte die Hoffnung, dass klügere Personen schon eine Methode gefunden haben wie sich alle Funktionen vektorisieren lassen