DataFrame中字符串时间序列转datetime对象并保留格式报错求助
问题解决:时间字符串转datetime报错及格式保留需求
报错原因
你的时间字符串存在前导空格(示例:' 06-30-2022 19:41:15'),与指定的解析格式%m-%d-%Y %H:%M:%S不匹配,导致pandas无法正确解析时间。
解决方案
1. 先清理字符串空格
首先对时间列做字符串清洗,去除前后多余空格:
df['Timestamp'] = df['Timestamp'].str.strip()
2. 转换为datetime对象(推荐)
如果需要后续进行时间筛选、运算等操作,建议将列转为datetime类型(datetime对象本身不存储显示格式,可按需设置显示样式):
# 转换为datetime类型 df['Timestamp'] = pd.to_datetime(df['Timestamp'], format='%m-%d-%Y %H:%M:%S') # 设置pandas默认显示格式为月在前年在后 pd.options.display.date_format = '%m-%d-%Y %H:%M:%S'
3. 转换为字符串格式(仅用于展示)
若你需要将列存为字符串类型并保持月在前年在后的格式,可在转换后格式化:
df['Timestamp'] = pd.to_datetime(df['Timestamp'].str.strip(), format='%m-%d-%Y %H:%M:%S').dt.strftime('%m-%d-%Y %H:%M:%S')
注意:此操作会将列转为字符串,无法再进行datetime类型的时间操作。
内容的提问来源于stack exchange,提问作者Roosha
相关产品推荐
相关产品推荐

