Seite 1 von 1
pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Samstag 20. Februar 2021, 15:12
von 10211291
Ich möchte die mit pandas datetime die Daten zweier Spalten kombinieren.
Die Datei "
minimal_in.csv" ist die folgende:
Code: Alles auswählen
Year,Time
29.01.2001,13:31:24
29.01.2001,13:31:27
29.01.2001,13:31:29
29.01.2001,13:31:32
29.01.2001,13:31:34
Und ich habe es probiert mit:
Code: Alles auswählen
import pandas as pd
from datetime import datetime, timedelta
import pandas as pd
df = pd.read_csv('minimal_in.csv')
df.head(5)
df[['Year','Time']].apply(pd.to_datetime)
df.dtypes
oder alternativ mit:
Code: Alles auswählen
df_combine = df['Year','Time']
pd.to_datetime(df_combine)
Hat jemand eine Idee? Ich wäre euch mega dankbar !
Re: pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Samstag 20. Februar 2021, 18:52
von Dennis89
Hallo,
ist dein Ziel einen String zu erhalten der das Jahr (das eigentlich mehr als nur das Jahr ist) und die Zeit enthält?
Für die erste Kombination zum Beispiel so:
Code: Alles auswählen
import pandas as pd
df = pd.read_csv('minimal_in.csv', header=1)
df_combine = f"{df.columns[0]} {df.columns[1]}"
print(df_combine)
Grüße
Dennis
Re: pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Samstag 20. Februar 2021, 21:11
von 10211291
Hey Dennis,
Danke dir!
Idealerweise hätte ich am Ende eine Spalte / Series vom Typ datetime64[ns], wo für jede Zeile einzeln die Werte aus "Year" und "Time" kombiniert werden.
Soweit ich das sehe, werden durch diese Funktion nur die Werte der ersten Zeile kombiniert und die Ausgabe ist 29.01.2001 13:31:24.
Viele Grüße,
Julia
Re: pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Samstag 20. Februar 2021, 22:29
von Dennis89
Hallo Julia,
ich stehe gerade etwas auf dem Schlauch. Du kannst über die Datei iterieren und damit jede Zeile für sich betrachten.
Code: Alles auswählen
import pandas as pd
df = pd.read_csv('minimal_in.csv')
for date in df['Year']:
print(date)
Analog dazu kannst du mit der Zeit-Spalte umgehen. Das Zusammenführen bereitet mir gerade Probleme, eventuell hat hier noch einer Tipps, jetzt will ich es auch wissen. Vielleicht habe ich mich auch verrennt, das kommt ab und zu mal vor.
Hoffe ich konnte trotzdem etwas helfen.
Viel Erfolg noch.
Grüße
Dennis
Re: pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Sonntag 21. Februar 2021, 00:26
von __blackjack__
@Dennis89: Pandas benutzt man gerade um nicht mit Schleifen arbeiten zu müssen.
@10211291: Das löst man bereits beim einlesen. Schau Dir mal an was `read_csv()` so an Argumenten bezüglich parsen von Datums- und Zeitangaben hat. Da kann man auch gleich Spalten zusammenfassen.
Re: pandas.to_datetime: Daten aus 2 Spalten kombinieren
Verfasst: Sonntag 21. Februar 2021, 11:12
von 10211291
@ __blackjack__
Danke für den Tipp mit der Option parse_dates!
Das funktioniert jetzt super. Hier die Lösung:
minimal.csv:
Code: Alles auswählen
Year,Time
29.01.2001,13:31:24
29.01.2001,13:31:27
29.01.2001,13:31:29
29.01.2001,13:31:32
29.01.2001,13:31:34
Code: Alles auswählen
import pandas as pd
from datetime import datetime, timedelta
import pandas as pd
df = pd.read_csv('minimal_in.csv',parse_dates=[[0, 1]])
df.head(5)
Ausgabe df:
Code: Alles auswählen
Year_Time
0 2001-01-29 13:31:24
1 2001-01-29 13:31:27
2 2001-01-29 13:31:29
3 2001-01-29 13:31:32
4 2001-01-29 13:31:34