Python使用pandas处理CSV日期列无法正确格式化日期如何解决
问题原因说明
datetime64[ns] 是 pandas 中用于存储时间的二进制类型,本身不存在固定的显示格式,你看到的 2021-11-04 只是 pandas 默认的输出样式,和实际存储的时间数据无关,不需要修改 pd.to_datetime 的转换参数。
两种解决方案
方案1:转换为指定格式的字符串(适合需要导出/输出文本的场景)
如果不需要再对该列做日期运算、范围筛选等操作,直接调用 dt.strftime 方法转成目标格式的字符串即可:
# 转换后列类型为 object df['date'] = df['date'].dt.strftime('%d-%b-%Y')
方案2:修改全局显示配置(适合保留datetime类型,仅修改打印显示效果)
如果需要保留日期类型用于后续计算,只需要调整 pandas 的全局显示配置,所有 datetime 列打印时都会自动按指定格式展示:
# 全局配置,仅影响打印显示效果,不会修改列实际存储的类型 pd.set_option('display.datetime_format', '%d-%b-%Y')
内容的提问来源于stack exchange,提问作者R DesGr
相关产品推荐
相关产品推荐

