我有以下数据框:
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)]
答案 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