pandas.errors.ParserError: Error tokenizing data. C error: Expected 17 fields in line 112, saw 18

pandas.errors.ParserError: Error tokenizing data. C error: Expected 17 fields in line 112, saw 18

pandas 简介

pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

pandas 读取csv文件

pandas.read_csv:

pandas.read_csv(filepath_or_buffer, *, 
	sep=_NoDefault.no_default, 
	delimiter=None, 
	header='infer', 
	names=_NoDefault.no_default, index_col=None, 
	usecols=None, 
	dtype=None, 
	engine=None, 
	converters=None,
	true_values=None, 
	false_values=None, 
	skipinitialspace=False, 
	skiprows=None, 
	skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=None, infer_datetime_format=_NoDefault.no_default, keep_date_col=False, date_parser=_NoDefault.no_default, date_format=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, encoding_errors='strict', dialect=None, on_bad_lines='error', delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None, storage_options=None, dtype_backend=_NoDefault.no_default)

运行环境

  • python 3.9
  • pandas 2.0.3

错误信息

# python generate_data.py data/data.csv data/
Traceback (most recent call last):
  File "/notebooks/xx/generate_data.py", line 62, in <module>
    generate_similarity_data(sys.argv[1], sys.argv[2])
  File "/notebooks/xx/generate_data.py", line 9, in generate_similarity_data
    df = pd.read_csv(path, index_col=False, sep=',', low_memory=False)
  File "/root/miniconda3/envs/text_label/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 912, in read_csv
    return _read(filepath_or_buffer, kwds)
  File "/root/miniconda3/envs/text_label/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 583, in _read
    return parser.read(nrows)
  File "/root/miniconda3/envs/text_label/lib/python3.9/site-packages/pandas/io/parsers/readers.py", line 1704, in read
    ) = self._engine.read(  # type: ignore[attr-defined]
  File "/root/miniconda3/envs/text_label/lib/python3.9/site-packages/pandas/io/parsers/c_parser_wrapper.py", line 239, in read
    data = self._reader.read(nrows)
  File "pandas/_libs/parsers.pyx", line 796, in pandas._libs.parsers.TextReader.read
  File "pandas/_libs/parsers.pyx", line 884, in pandas._libs.parsers.TextReader._read_rows
  File "pandas/_libs/parsers.pyx", line 861, in pandas._libs.parsers.TextReader._check_tokenize_status
  File "pandas/_libs/parsers.pyx", line 2029, in pandas._libs.parsers.raise_parser_error
pandas.errors.ParserError: Error tokenizing data. C error: Expected 17 fields in line 112, saw 18

解决错误

重点错误:

error: Expected 17 fields in line 112, saw 18

从上面的错误信息可知:
在原始csv文件中的第 112 行,文件标题是 17 个,但发现 18 个列数据
解决方法:
手动处理这行错误,比如转义字符的处理,或者就是多出来一列,删除就好了!!!
解决!

参考

1.https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html
2.https://baike.baidu.com/item/pandas/17209606?fr=ge_ala

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

szZack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值