【Python】处理时间数据格式出现time data does not match format valueError

今天在处理时间数据格式的时候出现了下面这种错误:

ValueError: time data ‘19970004’ does not match format ‘%Y%m%d’ (match)

转变时间数据格式的代码如下:

data['used_time'] = (pd.to_datetime(data['creatDate'], format='%Y%m%d') - 
                      pd.to_datetime(data['regDate'], format='%Y%m%d')).dt.days

根据错误提示,出现错误的原因是数据中有时间出错的格式。

通过修改在to_datetime()函数里面有errors参数,可以解决这个问题。

data['used_time'] = (pd.to_datetime(data['creatDate'], format='%Y%m%d', errors='coerce') - 
                      pd.to_datetime(data['regDate'], format='%Y%m%d', errors='coerce')).dt.days

errors参数共有三种赋值,默认的值为‘raise’,出现不符合规范的解析时就会报错。可以将errors参数赋值为‘coerce’,在解析的过程中将出错的时间格式设置为NaT。如果不想处理错误的时间格式,可以将errors赋值为‘ignore’,这样就还是原来的格式。

errors{‘ignore’, ‘raise’, ‘coerce’}, default ‘raise’

  • If ‘raise’, then invalid parsing will raise an exception.

  • If ‘coerce’, then invalid parsing will be set as NaT.

  • If ‘ignore’, then invalid parsing will return the input.

 

    原文作者:会飞的猩猩。
    原文地址: https://blog.csdn.net/zx1245773445/article/details/106525175
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞