2017-08-02 116 views

回答

1

使用boolean indexingquery,但需要倒置状态 - 这是今天和过滤器值更高:

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

感谢您的快速回复。我昨天开始使用Python,所以原谅我的知识缺乏,但如果使用查询,我会将“今天的日期”设置为固定值。这意味着如果我在下周查看数据库,但其中一个条目已过期,则数据框不会反映这一点。此外,每天更改代码以反映今天的新日期有什么意义 - 如果这是解决方案,我可能会直接从数据库中删除数据。 –

+0

对不起,我有点困惑 - 'pd.datetime.today()'生成每天'日期' - 例如明天'2017-09-02'。这是问题吗? – jezrael

+0

对不起,我现在了解你。我不知道pd.datetime.today()命令。 –