2016-09-02 67 views
1

,我有以下的数据帧:如何筛选出今天的日期在熊猫数据帧

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 

如果我们假设8月26日 - 2016年今天的日期,然后我想创建一个新的数据帧有效地排除了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

你提出的输入数据和错误输出不匹配,你的状态数据帧在你的输入,但你的错误是指一系列 – EdChum

+0

你可以张贴的'打印(df.dtypes)'的输出? – MaxU

+1

'df'是一个系列,而不是数据框。这是你的错误 –

回答

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