python - ParserError:错误标记数据。C 错误:预计第 6 行中有 4 个字段,看到 5
问题描述
我是 Python 和 Pandas 库的新手。我正在尝试在 Windows 10 中使用 pandas 读取 csv 文件,但出现上述错误。奇怪的是,相同的代码在其他一些 PC 上运行时没有任何错误。 没有 sep=";" 1)我试过包括 sep=";" 并且输出不是我所期望的(数据读入一系列而不是数据帧)。 使用 sep=";" 2)我在使用属性 nrows="5" 时得到部分输出,但在使用 nrows="6" 时得到相同的解析器错误(很明显,程序在第 6 行遇到了一些困难)。
我包括数据集的第一几行的快照以供参考。 第 30 行数据集
解决方案
解释
问题是,当您使用 读取 CSV 时pd.read_csv
,它使用文件的第一行作为标题。您的文件有 4 个这样的值:
citrus-fruit, semi-finished fruit, margarine, ready soup
它现在假设每一行最多有 4 个逗号分隔值,但如果它有更少,它会将缺失值视为空白。当它试图解析第 6 行时,即
whole milk, butter, yogurt, rice, abrasive cleaner
它看到一个额外的值 ( abrasive cleaner
) 并引发错误。
当您;
用作分隔符时,它会读取整行而不遇到 a ;
,因此整个数据框只有一列,即作为字符串的行。
解决方案
这取决于您要达到的目标。如果您确实想以 CSV 格式阅读此内容,您可以:
- 在 CSV 文件中添加标题行,如下所示(假设您有 11 列):
item1, item2, item3, item4 ........ item11
- 使用 , 的
names
参数read_csv
(再次假设您有 11 列),如下所示:
pd.read_csv(filename, names=['item' + str(i) for i in range(11)])
推荐阅读
- netlogo - 添加 links-own 和 turtles-own netlogo
- appium - 如何使用 appium 在 iOS 上设置暗/亮模式
- javascript - ComponentDidMount 之外的状态似乎没有更新
- c# - RDLC - xml 生成报告 - 错误报告中多个数据集、数据区域或分组的名称为 DataTable1
- assembly - 如果我在 64 位计算机上制作程序(比如说来自英特尔),它会在 64 位 iPhone 上运行吗
- go - 在 golang 迁移中找不到 bitbucket 包(go modules)
- asp.net-mvc - 是否可以创建一个可重用的 Html.CheckboxesFor
() 助手与其他内置助手一致 - visual-studio-code - 选择多行时的 VS Code 键盘快捷键
- jquery - 将项目添加到 Select2 级联
- java - 如何从 Android 中的应用程序设置中选择语言?