如何使用 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 代码
如有任何帮助,我将不胜感激!谢谢
从该站点下载的文件似乎是
.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')
那是因为它不是有效的 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()
根据需要更改列名。