2016-08-29 11 views
1

Ich habe ein Skript, das eine Excel-Datei verarbeitet. Die Abteilung, die sie sendet, hat ein System, das sie erzeugt, und mein Skript funktioniert nicht mehr.Python/Pandas: Wie konvertiere ich von datetime64 [ns] zu datetime

Ich habe plötzlich den Fehler Can only use .str accessor with string values, which use np.object_ dtype in pandas für die folgende Codezeile:

df['DATE'] = df['Date'].str.replace(r'[^a-zA-Z0-9\._/-]', '') 

ich die Art der Datumsspalten in der Datei aus dem alten System (dtype: Objekt) überprüfte vs der Datei aus dem neuen System (dtype: datetime64 [ns]).

Wie ändere ich das Datumsformat auf etwas, das mein Skript versteht?

Ich sah this answer, aber mein Wissen über Datumsformate ist nicht so granular.

+1

Sie können Daten mit 'df ['Date']. Dt.strftime ('% Y-% m-% d') 'in Strings umwandeln. – IanS

+0

Das hat es geschafft, danke. – mattrweaver

Antwort

1

Sie können die Funktion apply in der Dataframe-Spalte verwenden, um die erforderliche Spalte in String zu konvertieren. Zum Beispiel:

df['DATE'] = df['Date'].apply(lambda x: x.strftime('%Y-%m-%d')) 

Stellen Sie sicher, datetime Modul zu importieren.

apply() wird jede Zelle auf einmal zur Auswertung genommen und die Formatierung wie in der lambda-Funktion angegeben angewendet.

Verwandte Themen