我试图使用熊猫操作.csv文件,但我得到这个错误:
pandas.parser.CParserError:标记数据错误。C错误:第3行有2个字段,见12
我试着读过熊猫的文件,但一无所获。
我的代码很简单:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
我该如何解决这个问题?我应该使用csv模块还是其他语言?
文件来自晨星公司
我试图使用熊猫操作.csv文件,但我得到这个错误:
pandas.parser.CParserError:标记数据错误。C错误:第3行有2个字段,见12
我试着读过熊猫的文件,但一无所获。
我的代码很简单:
path = 'GOOG Key Ratios.csv'
#print(open(path).read())
data = pd.read_csv(path)
我该如何解决这个问题?我应该使用csv模块还是其他语言?
文件来自晨星公司
当前回答
对于这个问题,我遇到了多种解决方案。很多人也给出了最好的解释。但对于初学者来说,我认为以下两种方法就足够了:
import pandas as pd
#Method 1
data = pd.read_csv('file1.csv', error_bad_lines=False)
#Note that this will cause the offending lines to be skipped.
#Method 2 using sep
data = pd.read_csv('file1.csv', sep='\t')
其他回答
大多数有用的答案已经提到了,但是我建议将pandas数据框架保存为parquet文件。Parquet文件没有这个问题,同时它们是内存高效的。
虽然这个问题并非如此,但压缩数据也可能出现此错误。显式地设置kwarg压缩值解决了我的问题。
result = pandas.read_csv(data_source, compression='gzip')
我有同样的问题,当read_csv: ParserError:错误标记数据。 我只是把旧的csv文件保存为一个新的csv文件。问题解决了!
我自己也遇到过几次这样的问题。几乎每次,原因都是我试图打开的文件一开始就不是一个正确保存的CSV。这里的“适当”是指每一行都有相同数量的分隔符或列。
通常发生这种情况是因为我在Excel中打开了CSV,然后不恰当地保存了它。尽管文件扩展名仍然是. CSV,但纯CSV格式已经被改变了。
任何以pandas to_csv保存的文件都将被正确格式化,不应该有这个问题。但如果你用另一个程序打开它,它可能会改变结构。
希望这能有所帮助。
我使用的数据集有很多引号(")使用无关的格式。我能够通过包含read_csv()的这个参数来修复这个错误:
quoting=3 # 3 correlates to csv.QUOTE_NONE for pandas