Python read_csv-ParserError:标记数据时出错

时间:2018-09-29 09:12:51

标签: python pandas

我了解为什么尝试state时会出现此错误:

... const mapDispatchToProps = (dispatch) => ({ onModifyCategoryName: (categoryNewName) => { dispatch(actions.modifyCategoryName(categoryNewName)) } }) export default connect(null, mapDispatchToProps)(ModifyCategoryNameModal) ...

当它读取csv时,它在第一行中看到14个字符串/列,基于csv的第一行将其称为标头(这是我想要的)。

但是,这些列在行下进一步扩展(特别是到达第7行时)。

我可以通过跳过第1-6行来找到将其读入的解决方案,但我不希望这样做。我仍然希望读取整个csv,但不是标题为14列,而是如何将标题设为30列,并且如果没有文本/字符串,则将该列保留为“”或null或一些随机编号。换句话说,我不在乎它的名称,我只需要空格即可使其能够在第6行之后进行解析。

我想知道有没有一种方法可以读取csv,并明确地说有30列,但没有找到解决方法。

2 个答案:

答案 0 :(得分:1)

我可以抛出一些我认为应该起作用的随机解决方案。

1)设置Header = None并在read_csv的“名称”属性中指定列名称。

 df=pd.read_csv(file, header=None, namees = [field1, field2, ...., field 30])

PS。如果您的CSV文件中没有标题,则可以使用此功能。

2)其次,您可以尝试使用以下命令(如果您的csv已包含标题行)

df=pd.read_csv(file, usecols=[0,1,2,...,30])

让我知道这是否对您有用。

谢谢

Rohan Hodarkar

答案 1 :(得分:0)

要尝试的事情,error_bad_lines=False要引起注意,这将导致违规行被跳过

data = pd.read_csv('File_path', error_bad_lines=False)

只有几个集体答案。.

第一行数据中的分隔符可能会出现问题, 要解决此问题,请在调用read_csv时尝试指定sep和/或header参数。例如,

df = pandas.read_csv('File_path', sep='delimiter', header=None)

在上面的代码中,sep定义了分隔符,并且header = None告诉熊猫您的源数据没有用于标题/列标题的行。因此说:“如果文件不包含标题行,那么您应该显式传递header = None”。在这种情况下,pandas自动为每个字段{0,1,2,...}创建整数索引。

根据文档,定界符应该不是问题。文档说:“如果sep为None [未指定],将尝试自动确定这一点。”但是,我还没有走运,包括带有明显分隔符的实例。

这可能是分隔符的问题,因为大多数csv CSV是使用sep ='/ t'创建的,因此请尝试使用制表符(\ t)和分隔符/ t来读取read_csv。因此,尝试使用以下代码行打开。

data=pd.read_csv("File_path", sep='\t')

OR

pandas.read_csv('File_path',header=None,sep=', ')