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

Pandas读取Excel日期时无法识别月日顺序的问题解决

解决Pandas读取Excel日期格式混乱问题

你的问题核心是Pandas读取Excel时自动解析日期的逻辑导致格式不一致,且转换时未强制指定原日期格式,从而出现月日颠倒的情况。以下是两种可靠的解决方法:

方法一:读取时强制按MM/DD/YYYY解析

先定义一个日期解析函数,强制按原Excel的MM/DD/YYYY格式解析所有日期,避免Pandas自动推断出错:

from datetime import datetime
import pandas as pd

def parse_mmddyyyy(date_val):
    # 处理已被自动解析为datetime的情况
    if isinstance(date_val, datetime):
        return date_val
    # 按MM/DD/YYYY格式解析字符串
    return datetime.strptime(date_val, '%m/%d/%Y')

# 读取Excel时指定解析Date列,用自定义函数解析
df = pd.read_excel("test.xlsx", parse_dates=['Date'], date_parser=parse_mmddyyyy)
# 格式化为MM/DD/YYYY字符串显示
df['Date'] = df['Date'].dt.strftime('%m/%d/%Y')
print(df)

方法二:先读取为字符串,再统一转换

先将Date列以字符串类型读取,避免Pandas自动解析,再统一按MM/DD/YYYY格式转换:

import pandas as pd

# 读取时指定Date列为字符串类型
df = pd.read_excel("test.xlsx", dtype={'Date': str})
# 强制按MM/DD/YYYY格式转换为datetime,再格式化显示
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y').dt.strftime('%m/%d/%Y')
print(df)

关键说明:

  • 必须指定format='%m/%d/%Y',否则Pandas会自动推断日期格式,当日期中的日≤12时,极易混淆月和日。
  • 两种方法都能确保最终Date列保持原Excel的MM/DD/YYYY格式显示,不会出现月日颠倒的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:25:38