Ich muss Daten verarbeiten, wo jemand einen Datumswert mit einem Jahr 1700 verwendet hat, wo es kein tatsächliches Ereignisdatum gibt. 1700 bricht Datetime, die um 1900 beginnt, aber ich bin sicher, dass ihr alle das wisst.Ändern Sie ein Jahr in Pandas Dataframe, wenn es niedriger als 1900 ist
Ich habe die Daten in Datetime konvertiert und dann versucht, eine if-Anweisung:
df["DATE"] = pd.to_datetime(df["DATE"])
if df['DATE'].dt.year.any() < 1900
#assigning today's date
df['DATE'] = dt.datetime.today().strftime("%m/%d/%y")
else:
#the original date value, formatted
df["DATE"] = df["DATE"].map(lambda x: x.strftime("%m/%d/%y"))
Die if
Anweisung nicht die 1700
und ich den Fehler verfängt:
"ValueError: year=1700 is before 1900"
Pandas Version: 0.18 .0 numpy Version: 1.11.1
Beispieldaten würden die Antwort erleichtern. Jemand kann es trotzdem beantworten, aber wenn man es einbezieht, erhöht das fast immer die Wahrscheinlichkeit, eine Antwort zu bekommen. – piRSquared