项目场景:
提示:这里简述项目相关背景:
利用python中pandas库读取excel文件报错。
问题描述
提示:这里描述项目中遇到的问题:
出现读取文件后警告或直接报错。
Traceback (most recent call last):
File "D:\PycharmProject\统计建模\神经网络.py", line 11, in <module>
df = pd.read_csv('C:\\Users\\mihu\\Desktop\\data.csv',encoding='utf-8') # 使用实际路径替换
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mihu\AppData\Roaming\Python\Python311\site-packages\pandas\io\parsers\readers.py", line 1024, in read_csv
return _read(filepath_or_buffer, kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mihu\AppData\Roaming\Python\Python311\site-packages\pandas\io\parsers\readers.py", line 624, in _read
return parser.read(nrows)
^^^^^^^^^^^^^^^^^^
File "C:\Users\mihu\AppData\Roaming\Python\Python311\site-packages\pandas\io\parsers\readers.py", line 1921, in read
) = self._engine.read( # type: ignore[attr-defined]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\mihu\AppData\Roaming\Python\Python311\site-packages\pandas\io\parsers\c_parser_wrapper.py", line 234, in read
chunks = self._reader.read_low_memory(nrows)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "parsers.pyx", line 838, in pandas._libs.parsers.TextReader.read_low_memory
File "parsers.pyx", line 905, in pandas._libs.parsers.TextReader._read_rows
File "parsers.pyx", line 874, in pandas._libs.parsers.TextReader._tokenize_rows
File "parsers.pyx", line 891, in pandas._libs.parsers.TextReader._check_tokenize_status
File "parsers.pyx", line 2061, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 1 fields in line 4, saw 2
原因分析:
提示:这里填写问题的分析:
1.xls、xlsx
似乎存在版本问题,目前没有深入了解。
2.csv
出现如上报错,以下为ai对此解读:
这些错误信息指出在处理每个CSV文件时遇到了问题,主要是因为数据tokenization(解析)错误,即在预期的字段数与实际读取到的字段数不匹配。错误信息显示,大多数文件在第4行期望读取1个字段,但实际上看到的是2个或3个字段,这表明CSV文件的格式不一致或存在错误。
个人认为是在桌面直接创建xls,xlsx文件后直接将后缀名修改为csv导致的不兼容问题。
解决方案:
提示:这里填写该问题的具体解决方案:
在WPS中创建excel表,将数据输入后保存为.csv后缀,编码形式为“UTF-8”,这样就能解决如上问题。
注意:文件中尽量不要出现中文,能有效避免一些不必要的报错。