大家在利用pandas读取excel文件的时候,一定会碰到类似的问题;这里主要写一下我踩过的坑:
#官网pandas对engine的解释
enginestr, default None
If io is not a buffer or path, this must be set to identify io. Supported engines: “xlrd”, “openpyxl”, “odf”, “pyxlsb”. Engine compatibility :
“xlrd” supports old-style Excel files (.xls).
“openpyxl” supports newer Excel file formats.
“odf” supports OpenDocument file formats (.odf, .ods, .odt).
“pyxlsb” supports Binary Excel files.
Changed in version 1.2.0: The engine xlrd now only supports old-style .xls files. When engine=None, the following logic will be used to determine the engine:
If path_or_buffer is an OpenDocument format (.odf, .ods, .odt), then odf will be used.
Otherwise if path_or_buffer is an xls format, xlrd will be used.
Otherwise if path_or_buffer is in xlsb format, pyxlsb will be used.
New in version 1.3.0.
Otherwise openpyxl will be used.
但是,我们大部分应该是下载Exel文件的时候,里面内容的格式很乱导致pandas不知道用那个engine工作,所以才会让你手动ing指定engine。这里很简单你把文件另存为相应的格式就欧克了。
已解决ValueError:
Excel
file
format
cannot be d
eterm
ined
, you must
specify
an
engine
manual
ly
.
这个问题我搞了很久,最后终于搞明白了,先贴图,网上各种什么utf-8呀,格式化或者另存都不行,我都试过了。 问题在于原表格格式有些问题,最直接的办法就是把表格的内容复制到一个自己新建的表格中,然后改成先表格的路径。再安装这个模块,就可以了,conda install openpyxl。
如果有效,请点赞或者评论。...
接着进入到inspect_
excel
format
()方法中,找到返回值等于None的位置,即下图所示。这里的意思是,检查文件格式是否属于XLS _ SIGNATURES所包含的格式之一,如果不是则返回none。问题找到之后,检查一下需要读取的文件格式是否正确,打开文件之后另存为成指定格式就解决啦。这里我另存为了xlsx格式。当ext等于none时,提示这个错误。那么ext是怎么等于none的呢,往上找发现下图中圈住的这一行。根据报错内容来到显示报错的代码中。
Mac pandas bug记录(路径及缓存问题)-
Excel
file
format
cannot be d
eterm
ined
,you must
specify
an
engine
manual
ly
.
pd.read_
excel
方法本身是支持多种引擎的,包括"xlrd", “openpyxl”, “odf”, “pyxlsb”。
有的文件名义上是
Excel
,其实内心是个Html!使用pd.read_html方法
File
"/home/user1/test.py", line 78, in
show_mat(mat)
File
"/home/user1/test.py", line 50, in show_mat_flow
x = io.loadmat(mat_
file
)
File
"/home/user
Microsoft
Excel
is a popular spreadsheet. It uses a
file
format
called BIFF (Binary
File
Format
). There are many types of BIFF records. Each has a 4 byte header. Thefirst two bytes are an opcode th