wake-up-neo.com

Wie konvertiere ich Zeitstempel in datetime.date in Pandas Datenrahmen?

Ich muss zwei Pandas-Datenframes zu Datumsangaben zusammenführen, diese haben jedoch derzeit unterschiedliche Datumstypen. 1 ist ein Zeitstempel (aus Excel importiert) und der andere ist datetime.date.

Irgendein Rat?

Ich habe pd.to_datetime().date ausprobiert, aber dies funktioniert nur für ein einzelnes Element (z. B. df.ix[0,0]). Ich kann mich nicht auf die gesamte Serie (z. B. df['mydates']) oder den Datenrahmen anwenden lassen.

5
Afo B

Ein Kollege hat mir geholfen.

Dies scheint das oben angegebene Problem zu lösen

pd.to_datetime(df['mydates']).apply(lambda x: x.date())

15
Afo B

Ich fand das Folgende am effektivsten, als ich auf ein ähnliches Problem stieß. Zum Beispiel mit dem Datenrahmen df mit einer Reihe von Timestmaps in der Spalte ts

df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())

Dadurch erfolgt die Konvertierung. Sie können das Suffix .date() für Datumsangaben weglassen. Dann ändern Sie die Spalte auf dem Datenrahmen. Wie so ...

df.loc[:, 'ts'] = df.ts.apply(lambda x: pd.datetime.fromtimestamp(x).date())
0
BrotherJack

Eine andere Frage wurde als Dupe markiert, die darauf hinweist, aber diese Antwort war nicht enthalten, was die einfachste Antwort ist (vielleicht war diese Methode noch nicht vorhanden, als diese Frage veröffentlicht/beantwortet wurde):

Das Pandas-Dokument zeigt eine pandas.Timestamp.to_pydatetime -Methode zum "Konvertieren eines Timestamp-Objekts in ein natives Python-Datetime-Objekt".

0
codingatty

Wenn Sie die datetime.date-Objekte benötigen, dann bringen Sie sie mit dem .date-Attribut der Timestamp durch

pd.to_datetime(df['mydates']).date
0
piRSquared