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
相关产品推荐
相关产品推荐

