pd.to_datetime日期转换错误,需转为YYYY-DD-MM格式求助
解决方案
首先,你当前的代码问题在于format参数完全不匹配原始日期字符串的格式,导致解析出错误的日期,后续也就无法得到正确的YYYY-DD-MM格式。按以下步骤修正:
1. 正确解析原始日期字符串
你的原始日期字符串是"12/03/23 09:43 AM",需要先匹配它的格式:
- 如果是月/日/两位年份(即12月3日2023年),用这个format:
df_site['RECEIVE DATE'] = pd.to_datetime(df_site['RECEIVE DATE'], format='%m/%d/%y %I:%M %p') - 如果是日/月/两位年份(即3日12月2023年),用这个format:
df_site['RECEIVE DATE'] = pd.to_datetime(df_site['RECEIVE DATE'], format='%d/%m/%y %I:%M %p')
(注:%y匹配两位年份,%I匹配12小时制的小时,%p匹配AM/PM标识)
2. 转换为YYYY-DD-MM格式
pandas的datetime类型是底层存储的时间对象,要显示为YYYY-DD-MM格式,有两种方式:
方式一:转换为字符串列
如果需要把该列转为字符串类型,直接用strftime:
df_site['RECEIVE DATE'] = df_site['RECEIVE DATE'].dt.strftime('%Y-%d-%m')
方式二:设置pandas全局显示格式(不改变列类型)
如果想保留datetime类型,只是显示为YYYY-DD-MM格式,设置全局选项:
pd.options.display.date_format = '%Y-%d-%m'
内容的提问来源于stack exchange,提问作者Sultan
相关产品推荐
相关产品推荐

