将日期转换为datetime64格式时日月位置互换如何解决?
问题根因
你在第二步调用pd.to_datetime()时没有显式指定输入字符串的日期格式,pandas默认会优先按「月/日/年」的逻辑解析字符串,就把你已经转为「日/月/年」格式的字符串的日月位置再次互换了。
修复方案
推荐直接一步完成读取+日期类型转换,省去中间字符串转义的冗余步骤,避免格式混乱:
# 读取CSV时直接指定源日期格式,一步转成datetime64类型,无需额外处理 df = pd.read_csv('lib_file.csv', parse_dates=['Date'], date_format='%m/%d/%Y')
如果你需要保留原有转换逻辑,只需要在第二步转换时显式指定当前字符串的日期格式即可:
df['Date'] = pd.to_datetime(df['Date'], format='%d/%m/%Y')
注意:处理日期格式时优先显式指定格式规则,不要依赖pandas的自动推断逻辑,避免不同版本、不同地区配置导致的解析异常。
内容的提问来源于stack exchange,提问作者user13412850
相关产品推荐
相关产品推荐

