如何用Pandas将多种格式的日期字符串转换为Datetime对象?
解决Pandas多格式日期字符串转Datetime对象的问题
你当前代码的核心问题是指定了固定的format='%Y-%m-%d'参数,这会强制Pandas仅按照该格式解析日期,导致其他合法但格式不同的日期字符串无法被识别,最终返回NaT。
要让多数有效日期字符串正常转换,只需移除format参数,让Pandas自动推断不同的日期格式,同时保留errors='coerce'来将无效值(比如Hello World)转为NaT。修改后的代码如下:
import pandas as pd s = pd.Series(["14 Nov 2020", "14/11/2020", "2020/11/14", "Hello World", "Nov 14th, 2020"]) result = pd.to_datetime(s, errors='coerce', yearfirst=True) print(result)
执行后输出结果:
0 2020-11-14 1 2020-11-14 2 2020-11-14 3 NaT 4 2020-11-14 dtype: datetime64[ns]
关键说明
- 移除
format参数:Pandas内置的日期解析器支持自动识别多种常见格式(如带月份缩写、带序数词th、不同分隔符的日期)。 - 保留
yearfirst=True:对于14/11/2020这类日/月/年格式,该参数会优先将最后一位视为年份,避免解析错误。 errors='coerce':确保无效的非日期字符串被转为NaT,符合你的需求。
内容的提问来源于stack exchange,提问作者jdona13
相关产品推荐
相关产品推荐

