杰瑞科技汇

Python如何读取Excel中的日期数据?

Python 读取 Excel 日期

在 Python 中读取 Excel 文件中的日期数据时,需要注意 Excel 和 Python 日期格式的差异,以下是几种常见的方法:

使用 pandas 读取 Excel

pandas 是处理 Excel 数据的常用库,它会自动将 Excel 日期转换为 Python 的 datetime 对象。

import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('your_file.xlsx', sheet_name='Sheet1')
# 查看日期列
print(df['date_column'])

使用 openpyxl 读取 Excel

openpyxl 是另一个常用的 Excel 处理库,需要手动处理日期转换。

from openpyxl import load_workbook
# 加载工作簿
wb = load_workbook('your_file.xlsx')
ws = wb.active
# 获取日期值(Excel 日期序列数)
excel_date = ws['A1'].value
# 转换为 Python datetime
from datetime import datetime, timedelta
python_date = datetime(1900, 1, 1) + timedelta(days=excel_date - 2)  # 减2是因为Excel的起始日期有差异
print(python_date)

使用 xlrd 读取 Excel(旧版 Excel)

xlrd 主要用于处理旧版 .xls 文件:

import xlrd
# 打开工作簿
wb = xlrd.open_workbook('your_file.xls')
sheet = wb.sheet_by_index(0)
# 获取日期值
excel_date = sheet.cell_value(0, 0)
# 转换为 Python datetime
if excel_date:  # 确保不是空值
    python_date = xlrd.xldate.xldate_as_datetime(excel_date, wb.datemode)
    print(python_date)

处理日期格式问题

如果日期显示为数字或格式不正确,可以尝试以下方法:

# 使用 pandas 时指定日期列
df = pd.read_excel('your_file.xlsx', parse_dates=['date_column'])
# 或者手动转换
df['date_column'] = pd.to_datetime(df['date_column'])

处理不同日期系统

Excel 有两种日期系统:

  • 1900 日期系统(Windows 默认)
  • 1904 日期系统(Mac 默认)

在转换时需要注意:

# 对于 1904 日期系统
python_date = datetime(1904, 1, 1) + timedelta(days=excel_date)

常见问题解决

  1. 日期显示为数字:这是 Excel 内部存储方式,需要转换为 datetime 对象
  2. 时区问题:Excel 不存储时区信息,Python 默认为 naive datetime
  3. 1900/1904 系统差异:确保使用正确的转换公式

希望这些方法能帮助你正确处理 Excel 中的日期数据!

分享:
扫描分享到社交APP
上一篇
下一篇