Pandas DataFrame object类型日期列转datetime格式报错如何解决?
错误原因
- 格式符使用错误:
%M是分钟对应的格式标识,月份对应的格式符为小写%m - 未匹配日期分隔符:清理后的日期采用
.作为日、月、年的分隔符,你指定的转换格式未包含该分隔符 - 空格清理不彻底:仅替换两个连续空格无法覆盖首尾空白、零散空格等场景
解决步骤
- 先完成完整的字符串清理,同时去掉冗余关键词和所有首尾空白:
data["Date Time"] = data["Date Time"].str.replace("Verkauft", "").str.strip()
- 用正确的格式参数进行datetime转换:
data["Date Time"] = pd.to_datetime(data["Date Time"], format="%d.%m.%Y")
- (可选)如果存在少量格式异常的日期值,可添加
errors="coerce"参数,将无法转换的值自动置为NaT(时间类型空值),避免整行报错:
data["Date Time"] = pd.to_datetime(data["Date Time"], format="%d.%m.%Y", errors="coerce")
转换完成后可执行print(data["Date Time"].dtype)验证,输出为datetime64[ns]即为转换成功。
内容的提问来源于stack exchange,提问作者mika
相关产品推荐
相关产品推荐

