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

读取Excel到pandas时日期列失真 如何实现自动化修正?

解决方案
  • 跳过前导无效行:该Excel文件前7行是logo、说明类的无效内容,读取时直接指定skiprows=7即可从正式表头行开始读取,无需手动清理原文件。
  • 修复日期列转换异常:Excel中常规格式存储的日期本质是Excel序列号,以1900年1月1日为起始值1计算,且存在历史遗留的闰年计算bug,直接用默认参数转换会出现日期偏移,需要指定对应的起始基准。

完整可运行代码如下:

from requests import get
import pandas as pd

url = 'http://rigcount.bakerhughes.com/static-files/55ff50da-ac65-410d-924c-fe45b23db298'
# 请求文件内容
r = get(url)
r.raise_for_status()

# 写入本地文件
with open('out.xlsb', 'wb') as out_file:
    out_file.write(r.content)

# 读取时跳过前7行无效内容
Canada_Oil_Gas = pd.read_excel(
    'out.xlsb', 
    sheet_name='Canada Oil & Gas Split', 
    engine='pyxlsb',
    skiprows=7
)

# 转换日期列,指定Excel序列号对应的正确起始日期
Canada_Oil_Gas['Date'] = pd.to_datetime(Canada_Oil_Gas['Unnamed: 0'], origin='1899-12-30', unit='D')

# 可选:删除原始的Unnamed: 0列
Canada_Oil_Gas = Canada_Oil_Gas.drop(columns=['Unnamed: 0'])
  • 转换后的Date列和Excel中显示的日期完全一致,整个流程无需手动操作,可完全自动化运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:09:03