如何使用Pandas读取old_Excel xls格式?

问题描述 投票:0回答:2

如何使用 Pandas 导入旧格式的 XLS 文件(非 XLSX)?

我从联合国汇率下载了一个 XLS 文件 (https://treasury.un.org/operationalrates/OpRatesExport.php)

即使尝试了不同的方法,我也无法让 Pandas 导入文件。我试过这些: 将熊猫导入为 pd 导入 xlrd df = pd.read_excel('D: _DOWNLOAD\downloaded.xls', skiprows=1) 去向 错误代码:无法确定Excel文件格式,必须手动指定引擎。

当我添加 'engine='xlrd' 时,它有一个不同的错误代码: df = pd.read_excel('D: _DOWNLOAD\downloaded.xls', skiprows=1,engine='xlrd') 去向 XLRDError:不支持的格式或损坏的文件:预期的 BOF 记录;发现 b' 阿富汗'

即使将 skiprows=1 更改为 skiprows=[0,1,2],我也有相同的 XLRDError 代码

如有任何帮助,我将不胜感激!谢谢

pandas xls
2个回答
1
投票

从该站点下载的文件似乎是

.xml
文件(不是
.xls
)。您选择哪种选项组合来获得
.xls

我能够下载一个可以通过

pandas.read_xml
读取的文件。

这是对我有用的代码

import pandas as pd

df = pd.read_xml('downloaded.xml')

# then if you want to save it in a different format:
df.to_csv('downloaded.csv')

1
投票

那是因为它不是有效的 Excel 文件。它只是一个纯文本文件。 Excel 可以打开它,但会警告您格式错误。

您可以将其解析为文本文件:

df = pd.read_csv(
    "downloaded.xls",
    sep="\t",
    header=None,
    names=["Country", "CurrencyDescription", "CurrencyCode", "Date", "ExchangeRate"],
    parse_dates=["Date"]
)

for col in df.select_dtypes("object"):
    df[col] = df[col].str.strip()

根据需要更改列名。

© www.soinside.com 2019 - 2024. All rights reserved.