pandas使用to_datetime转换日期时如何忽略未转换的剩余内容
解决方案
方法1:使用exact参数适配非严格匹配
你找到的exact参数完全可以满足需求,该参数默认值为True,要求待解析字符串与指定格式完全匹配;设置为False后,仅要求指定格式的内容出现在目标字符串中即可,多余内容会自动忽略。
修改后的代码如下:
df['date_column'] = pd.to_datetime(df['date_column'], format='%m/%d/%Y %H:%M:%S', exact=False)
该方法会保留解析到的时分秒信息,仅忽略末尾多余的AM/PM标识。
方法2:仅截取日期部分解析
如果只需要保留%m/%d/%Y对应的日期部分,也可以先截取字符串前10位再做解析,完全规避后面多余内容的影响,代码如下:
df['date_column'] = pd.to_datetime(df['date_column'].str[:10], format='%m/%d/%Y')
该方法只会解析日期部分,时分秒信息会直接丢弃。
报错原因说明
你之前执行代码报错是因为pd.to_datetime默认开启严格匹配模式,你给出的第一条数据末尾多了AM标识,和你指定的%m/%d/%Y %H:%M:%S格式不完全对应,因此抛出unconverted data remains错误。
内容的提问来源于stack exchange,提问作者Alejandro A
相关产品推荐
相关产品推荐

