Python将Excel数字日期转换为标准日期的方法

Evan
Evan
发布时间:2026-10-14 | 7人浏览过
原创

本文详解如何在Python中将Excel导入的数字日期转换为标准日期格式。通过实验确定Excel日期基准日为1899-12-30,利用pandas读取数据并修改列名,结合datetime库计算偏移量。提供完整代码示例,解决Excel时间戳导致的日期显示异常问题,适用于数据清洗与自动化处理场景。

Excel数字日期转换原理

在将Excel数据导入Python时,常遇到日期字段显示为数字而非标准日期格式的情况。该数字本质上是Excel内部的时间戳。通过验证增加一天对应数字加1的规律,可以反向推导Excel日期计算的起始基准点。

首先观察Excel文件中日期的原始显示效果。

接着查看Python直接读取该Excel文件后,日期字段呈现的数字状态。

目标是将代表日期的列名转换为标准的日期格式,具体实现思路如下。

第一步,在Excel中验证特定日期对应的数字值。例如,2018-11-02对应的日期戳为43406。

第二步,计算该日期戳对应的基准年份。通过2018-11-02减去43406天,得出Excel日期计算的起始基准日为1899-12-30。

第三步,实现转换逻辑。将日期戳加上基准日1899-12-30,即可得到对应的标准日期。

转换后的列名效果如下。

Python代码实现步骤

以下代码展示了如何将Excel时间戳转换为标准日期,并更新原有列名的具体步骤。


import pandas as pd
import datetime
data=pd.read_excel(r'xxxx.xlsx')
col=list(data.columns)#获取列名
print(col)
col_new=[]
def date(dates):#定义转化日期戳的函数,dates为日期戳
  delta=datetime.timedelta(days=dates)
  today=datetime.datetime.strptime('1899-12-30','%Y-%m-%d')+delta#将1899-12-30转化为可以计算的时间格式并加上要转化的日期戳
  return datetime.datetime.strftime(today,'%Y-%m-%d')#制定输出日期的格式
for x in range(len(col[2:9])):#将excel的时间戳循环替换
  col_date=date(col[2:9][x])
  col_new.append(col_date)
col[2:9]=col_new
data.columns=col

Excel时间处理补充

补充知识:Python处理Excel表格中的时间显示。

具体实现代码如下。


import openpyxl
import datetime
wb = openpyxl.Workbook()
ws = wb.active
ws.title
ws['A1'] = 520
ws.append([1,2,3])
ws['A3'] = datetime.datetime.now()
wb.save('time.xlsx')

以上介绍了Python将Excel数字日期转换为标准日期的完整操作流程,供读者参考与实践。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表