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 传入缓冲区或路径,则必须显式设置引擎”的主要内容,如果未能解决你的问题,请参考以下文章
pandas编写自定义函数高亮显示(highlight)dataframe中的指定内容(数值)(highlighting a specific values or content of a panda