Ich habe eine SQL-Datei, die aus den Daten besteht, unter denen ich in Pandas lesen.Pandas Filtern und Vergleichen von Daten
df = pandas.read_sql('Database count details', con=engine,
index_col='id', parse_dates='newest_available_date')
Ausgabe
id code newest_date_available
9793708 3514 2015-12-24
9792282 2399 2015-12-25
9797602 7452 2015-12-25
9804367 9736 2016-01-20
9804438 9870 2016-01-20
Die nächste Codezeile ist letzte Woche Datum
date_before = datetime.date.today() - datetime.timedelta(days=7) # Which is 2016-01-20
zu bekommen, was ich versuche, zu tun date_before
mit df
und Druck vergleichen out alle Zeilen, die weniger als date_before
if (df['newest_available_date'] < date_before): print(#all rows)
Offensichtlich gibt mir ein Fehler The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Wie soll ich das tun?
Ich bekomme immer noch den Fehler 'Der Wahrheitswert einer Serie ist mehrdeutig. Benutze a.empty, a.bool(), a.item(), a.any() oder a.all(). ' –
Ich habe deinen Datenrahmen kopiert und lese ihn mit' df = pd.read_clipboard (parse_dates = [ 'next_date_available']) ', und dann funktionierte der Prozess gut. Versuchen Sie es auf diese Weise und lassen Sie mich wissen, wenn Sie noch Probleme haben. Denken Sie daran, dass der 'parse_dates' -Parameter eine Liste in Ihrer' pd.read_sql (parse_dates = ['nearest_available_data']) 'erfordert. –
Ich habe 'a = df [df [' next_date_available ']