2017-08-02 3 views

Antwort

1

Verwenden boolean indexing oder query, müssen aber invertieren Zustand - Filterwerte, die heute und höher:

rng = pd.date_range('2017-08-01', periods=10) 
df = pd.DataFrame({'Date': rng, 'a': range(10)}) 
print (df) 
     Date a 
0 2017-08-01 0 
1 2017-08-02 1 
2 2017-08-03 2 
3 2017-08-04 3 
4 2017-08-05 4 
5 2017-08-06 5 
6 2017-08-07 6 
7 2017-08-08 7 
8 2017-08-09 8 
9 2017-08-10 9 

df1 = df[df['Date'] >= pd.datetime.today()] 
print (df1) 
     Date a 
2 2017-08-03 2 
3 2017-08-04 3 
4 2017-08-05 4 
5 2017-08-06 5 
6 2017-08-07 6 
7 2017-08-08 7 
8 2017-08-09 8 
9 2017-08-10 9 

date_today = pd.datetime.today() 
df1 = df.query("Date >[email protected]_today") 
print (df1) 
     Date a 
2 2017-08-03 2 
3 2017-08-04 3 
4 2017-08-05 4 
5 2017-08-06 5 
6 2017-08-07 6 
7 2017-08-08 7 
8 2017-08-09 8 
9 2017-08-10 9 
+0

Danke für die schnelle Antwort. Ich habe gestern angefangen, Python zu benutzen, entschuldige also meinen Mangel an Wissen, aber wenn ich eine Abfrage verwende, setze ich 'heutiges Datum' auf einen festen Wert. Dies bedeutet, dass wenn ich die Datenbank nächste Woche angeschaut habe, aber einer der Einträge abgelaufen ist, der Datenrahmen dies nicht widerspiegelt. Auch, was ist der Punkt, den Code jeden Tag zu ändern, um das heutige neue Datum widerzuspiegeln - wenn das die Lösung ist, kann ich ebenso einfach die Daten von der Datenbank direkt entfernen. –

+0

Tut mir leid, ich bin ein bisschen verwirrt - 'pd.datetime.today()' erzeuge jeden Tag 'Datum' - z.B. morgen '2017-09-02'. Es ist ein Problem? – jezrael

+0

Entschuldigung, ich verstehe dich jetzt. Ich kannte den Befehl pd.datetime.today() nicht. –

Verwandte Themen