我有以下数据框:
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'
任何想法如何解决这个问题?
谢谢!
解决方案:
today = time.strftime("%Y-%m-%d")
df = df.loc[(df.Date < today)]
我认为您想过滤出现在指定日期之前的日期,尽管标题似乎具有误导性。您必须将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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句