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

Pandas读取Excel日期列自动转为整数的原因及解决方法

问题原因与解决方法

问题原因

Excel里的日期本质是浮点数序列号:它以1899年12月30日为原点,每过一天数值加1(比如7/15/2022对应的44757就是从原点到这天的天数)。pandas的dtype参数仅用于指定读取时的原始数据类型,无法自动把这些序列号转换成datetime——设datetime64时,pandas不会识别这是Excel日期序列号;设string也只是把整数转成字符串,不是你要的MM/DD/YYYY格式。另外如果Excel单元格仅显示为日期,但实际存储的是数值,pandas会直接读取原始数值,不会遵循单元格的显示格式。

正确导入日期的方法

方法1:用parse_dates直接解析(最简便)

在read_excel里指定要解析的列,pandas会自动识别Excel日期序列号并转换成datetime类型:

import pandas as pd
df = pd.read_excel('你的文件路径', parse_dates=['ORDER LINE CREATE DATE'])

方法2:读取后手动转换

如果方法1失效,可以先读取为整数,再用pd.to_datetime转换,指定Excel的日期原点:

import pandas as pd
df = pd.read_excel('你的文件路径')
# 把Excel日期序列号转成datetime
df['ORDER LINE CREATE DATE'] = pd.to_datetime(df['ORDER LINE CREATE DATE'], unit='D', origin='1899-12-30')

方法3:用converters参数自定义转换

在读取时直接对指定列应用转换函数:

import pandas as pd

def convert_excel_date(x):
    return pd.to_datetime(x, unit='D', origin='1899-12-30')

df = pd.read_excel('你的文件路径', converters={'ORDER LINE CREATE DATE': convert_excel_date})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 11:45:57