"Must explicitly set engine if not passing in buffer or path for io" 在熊猫

"Must explicitly set engine if not passing in buffer or path for io" in Panda

当运行以下Python熊猫代码:

    xl          = pd.ExcelFile(dataFileUrl)
    sheets      = xl.sheet_names
    data        = xl.parse(sheets[0])
    colheaders  = list(data)

我收到 ValueError:

Must explicitly set engine if not passing in buffer or path for io

该文件肯定是一个 excel 文件,毫无疑问。

发生了什么事?

我会试试

xl = pd.ExcelFile(dataFileUrl, engine='xlrd')

如果您将文件路径设置为:

#Read and write to excel
dataFileUrl = R"D:\real_names.xlsx"
data = pd.read_excel(dataFileUrl)

它可能会起作用。我已经尝试和测试了。

我遇到了同样的问题,这是因为生成 dataFileUrl 的代码生成了一个列表,其中只有一个元素。更改为 dataFileUrl[0] 解决了问题。

我有同样的错误。我最终使用以下代码将我需要的 excel 文件从 Github 存储库获取到 Pandas 数据帧中:

excel_url = R"https://github.com/user/repository/blob/master/public/data/filename.xlsx?raw=true"
df = pd.io.excel.read_excel(excel_url)

有时您只需要升级 pandas 版本

pip install --upgrade pandas