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

equ*_*ity 3 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
Run Code Online (Sandbox Code Playgroud)

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

编辑: 这是我的代码:

today = time.strftime("%m/%d/%Y")
df.Date = df.Date <> today
Run Code Online (Sandbox Code Playgroud)

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

'Series' object has no attribute 'Date'
Run Code Online (Sandbox Code Playgroud)

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

谢谢!

解决方案:

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

df = df.loc[(df.Date < today)]
Run Code Online (Sandbox Code Playgroud)

Nic*_*eli 6

我认为您想要过滤早于指定日期出现的日期,尽管标题似乎具有误导性。您必须将Datedtype 的列转换objectdatetime64.

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
Run Code Online (Sandbox Code Playgroud)