You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调整日期格式:交换日与月位置(无需转字符串)

解决Pandas日期格式转换问题

首先得说,你之前的代码没成功大概率是因为拆分符号错了——你的日期是用/分隔的,但代码里用了split('-'),肯定拆不出正确的年、月、日嘛😅。而且手动拆分字符串再拼接确实容易出错,尤其是遇到单数字的月/日(比如1月写成1而不是01),还得处理格式对齐的问题。

其实Pandas本身就有非常简便的日期处理工具,完全不需要手动转字符串交换日月位置,直接用pd.to_datetime就能搞定:

具体步骤

  • 第一步:解析日期为datetime类型
    你的原始日期是日/月/年格式(比如26/2/2016,我猜你之前的例子可能写反了顺序,毕竟日不可能是2016😂),直接指定format参数告诉Pandas怎么解析:

    import pandas as pd
    
    # 把字符串日期解析成datetime对象,format='%d/%m/%Y'对应日/月/年
    nir['Date'] = pd.to_datetime(nir['Date'], format='%d/%m/%Y')
    

    解析后,Date列就变成了Pandas的datetime类型,它内部已经正确存储了年、月、日的信息,不需要你手动交换位置。

  • 第二步:输出为yyyy-mm-dd格式
    其实datetime类型在Pandas里默认显示就是yyyy-mm-dd格式,如果你的需求只是显示成这个样子,这一步甚至可以省略。如果需要把它转成字符串类型的yyyy-mm-dd,用dt.strftime就行:

    # 转成字符串格式的yyyy-mm-dd
    nir['Date'] = nir['Date'].dt.strftime('%Y-%m-%d')
    

额外提示

如果你的Date列里真的混了多种格式(比如有的是日/月/年,有的是其他格式),可以试试去掉format参数,让Pandas自动推断,但这样可能会有解析错误的风险。更稳妥的方式是先筛选出不同格式的行,分别处理后再合并。

内容的提问来源于stack exchange,提问作者Sanito Machiavelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:06:41