如何在Python Pandas中修正DataFrame中日月位置颠倒的日期格式?
解决Pandas中日期字符串日月颠倒的问题
你的问题根源在于:Pandas自动解析日期时,会对1-05-2019这类模糊字符串(1既可以是月份也可以是日期)误判为月-日-年格式;而22-04-2019因为22超出了月份范围(1-12),才能被正确识别为日-月-年。要解决这个问题,需要明确指定日期的输入格式,避免Pandas自动猜测。
解决方案代码
import pandas as pd # 构造示例DataFrame data = {'COL1': ['1-05-2019', '22-04-2019', '5-06-2019']} df = pd.DataFrame(data) # 按指定的日-月-年格式解析,再格式化输出为dd-mm-yyyy的字符串 df["COL2"] = pd.to_datetime(df["COL1"], format='%d-%m-%Y').dt.strftime('%d-%m-%Y')
处理后结果
| COL1 | COL2 |
|---|---|
| 1-05-2019 | 01-05-2019 |
| 22-04-2019 | 22-04-2019 |
| 5-06-2019 | 05-06-2019 |
补充说明
pd.to_datetime的format='%d-%m-%Y'参数强制Pandas按照日-月-年的规则解析输入字符串,完全避免自动猜测的误差。dt.strftime('%d-%m-%Y')会将datetime类型转换为指定格式的字符串,默认即为object类型,无需额外转换。
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

