将String转换为datetime时的ValueError

时间:2015-07-01 20:16:36

标签: python

我有一个如下的数据帧,我试图将数据帧减少为仅包含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

谢谢

2 个答案:

答案 0 :(得分:4)

您使用的日期格式错误,%b用于指定的月份(缩写为JanFeb等),使用%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')]