Panda 中的“如果不为 io 传入缓冲区或路径,则必须显式设置引擎”

Posted

技术标签:

【中文标题】Panda 中的“如果不为 io 传入缓冲区或路径,则必须显式设置引擎”【英文标题】:"Must explicitly set engine if not passing in buffer or path for io" in Panda 【发布时间】:2017-08-14 11:20:37 【问题描述】:

运行以下 Python Panda 代码时:

    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文件,这一点毫无疑问。

发生了什么?

【问题讨论】:

【参考方案1】:

我会试试的

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

【讨论】:

【参考方案2】:

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

【讨论】:

【参考方案3】:

如果您将文件路径指定为:

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

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

【讨论】:

【参考方案4】:

我有同样的错误。我最终使用以下代码将我需要的 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)

【讨论】:

【参考方案5】:

有时你只需要升级 pandas 版本

pip install --upgrade pandas

【讨论】:

以上是关于Panda 中的“如果不为 io 传入缓冲区或路径,则必须显式设置引擎”的主要内容,如果未能解决你的问题,请参考以下文章

Panda 中的合并不允许第二个密钥加入

Panda read_csv中的编码错误[重复]

panda迭代

Panda3d Showbase类错误

检查panda数据帧中的多个列是否重合并在新列中标记它们

pandas编写自定义函数高亮显示(highlight)dataframe中的指定内容(数值)(highlighting a specific values or content of a panda