Ich habe einen Datenrahmen, der wie folgt aussieht:merkwürdige Ergebnisse von Timedelta mit Pandas
df = pd.DataFrame({'date_sent': ['06/11/2015', '', 'Not required', '06/11/2015'],
'date_published': ['06/11/2015', '', '', '23/01/2016']})
Ich mag den Unterschied zwischen den beiden Daten in jeder Zeile berechnen, so dass ich zuerst die Saiten auf dem neuesten Stand Objekte konvertieren:
df.date_published = pd.to_datetime(df.date_published.str.replace('Not required', ''))
df.date_sent = pd.to_datetime(df.date_sent.str.replace('Not required', ''))
Dann ziehe ich eine von den anderen:
df['delay'] = df.date_published - df.date_sent
Aber das gibt mir eigenartige Ergebnisse - i t ist nicht 226 Tage zwischen 06/11/2015 und 23/01/2016:
df
date_published date_sent delay
0 2015-06-11 2015-06-11 0 days
1 NaT NaT NaT
2 NaT NaT NaT
3 2016-01-23 2015-06-11 226 days
Was mache ich falsch? Ich benutze Pandas v0.18.
Ah - ich denke, mein Datumsformat ist falsch? Ich habe 'df.date_published = pd.to_datetime (df.date_published.str.replace ('Not required', ''), format = '% d /% m /% Y') 'versucht, bekomme aber einen Fehler. – Richard
Ich kann nicht Final Table mit Pandas 18.1 reproduzieren ... Sie konvertieren '06/11/2015 'usw. nicht zur Datenzeit. nur "nicht erforderlich" – Merlin