如何在Pandas Dataframe中过滤今天的日期

时间:2016-09-02 13:25:02

标签: python datetime pandas

我有以下数据框:

Company     Date                 Value
ABC         08/21/16 00:00:00    500
ABC         08/22/16 00:00:00    600
ABC         08/23/16 00:00:00    650
ABC         08/24/16 00:00:00    625
ABC         08/25/16 00:00:00    675
ABC         08/26/16 00:00:00    680

如果我们假设2016年8月26日是今天的日期,那么我想创建一个新的数据框架,有效地排除08/26/16行中的数据。

修改 这是我的代码:

today = time.strftime("%m/%d/%Y")
df.Date = df.Date <> today

不幸的是,我看到一条错误消息,指出:

'Series' object has no attribute 'Date'

知道如何解决这个问题吗?

谢谢!

SOLUTION:

today = time.strftime("%Y-%m-%d")

df = df.loc[(df.Date < today)]

1 个答案:

答案 0 :(得分:2)

我认为您希望过滤出现在指定日期之前的日期,但标题似乎具有误导性。您必须将Date列dtype object转换为datetime64

In [22]: df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d')

In [23]: today = datetime.strptime('08/26/16', '%m/%d/%y')

In [24]: today
Out[24]: datetime.datetime(2016, 8, 26, 0, 0)

In [25]: df = df.loc[(df['Date'] < today)]

In [26]: df
Out[26]: 
  Company       Date  Value
0     ABC 2016-08-21    500
1     ABC 2016-08-22    600
2     ABC 2016-08-23    650
3     ABC 2016-08-24    625
4     ABC 2016-08-25    675