我有一个如下的数据帧,我试图将数据帧减少为仅包含Date大于变量curve_enddate
的行。 df['Date']
位于datetime
,因此我正在尝试转换curve_enddate[i][0]
,其中2015-06-24
形式的字符串为datetime
但收到错误{ {1}}。
ValueError: time data '2015-06-24' does not match format '%Y-%b-%d'
我收到错误的行:
Date Maturity Yield_pct Currency
0 2015-06-24 0.25 na CAD
1 2015-06-25 0.25 0.0948511020 CAD
谢谢
答案 0 :(得分:4)
您使用的日期格式错误,%b
用于指定的月份(缩写为Jan
或Feb
等),使用%m
表示编号的月份。< / p>
代码 -
df = df[df['Date'] > time.strptime(curve_enddate[i][0], '%Y-%m-%d')]
答案 1 :(得分:2)
您无法比较{em> time.struct_time元组这是time.strptime
返回Timestamp
的内容所以您还需要更改它以及使用'%Y-%m-%d'
使用m
,即月份作为十进制数。您可以使用pd.to_datetime
创建要比较的对象:
df = df[df['Date'] > pd.to_datetime(curve_enddate[i][0], '%Y-%m-%d')]