当前位置: 首页 > 知识库问答 >
问题:

Python读取\u csv标记化错误/读取不一致的csv文件

谢洛城
2023-03-14

我有一个csv文件,有几百行和13列。csv文件的结构如下(示例):

a  b  c  d 

23 43 54 65

76 23 43 63

.

.

a  b  e  c  d

21 12 43 12 09 

23 12 32 43 87

一个标题的值显示在另一个标题下。因此,当我使用read_csv时,我得到ParserError:Error标记化数据。C错误:第27458行预期有12个字段,saw 13。

关于如何清理/重新排列csv文件并将正确的列值放在正确的列下,有什么建议吗?可能创建一个新的csv或将其输入数据库。谢谢

共有2个答案

艾国安
2023-03-14

如果您可以在csv文件中提供列名(总共13个)作为文件的第一行,您将能够使用read_csv,在没有给出值的地方返回空数据,然后您可以用任何其他您想要的值替换NaN。

叶智
2023-03-14

如果您不特别需要创建数据帧,那么您可以通过不使用pandas轻松地处理这个问题。标准csv模块将愉快地读取不同长度的行。每行作为列表返回。您可以直接使用这些字符串,或者如果需要清理csv,可以将空字符串附加到列表中,使其长度相同,并将其写回新文件

import csv

with open('test.txt','r') as f:
    rdr=csv.reader(f)
    for i in rdr:
        print(i)
 类似资料:
  • 当我试图在Python中打印CSV文件的内容时,我得到了这个错误。 回溯(最近调用最后):文件“/users/cassandracampbell/library/preferences/pycharmce2018.2/scratches/player.py”,第5行,在打开('player.csv')的csvfile:filenotfounderror:[errno2]中没有这样的文件或目录:'p

  • 我试图读取CSV文件,但它抛出了一个错误。我无法理解我的语法有什么问题,或者我是否需要向我的read_csv添加更多属性。 我试了一下这个解决办法 UnicodeDecodeError:“utf-8”编解码器无法解码位置21中的字节0x96:起始字节也无效。但它不起作用 [错误] UnicodeDecodeError回溯(最近一次调用)pandas/_libs/解析器。大熊猫中的pyx_图书馆。解

  • 问题内容: 我目前正在尝试从Python 2.7中的.csv文件中读取数据,该文件最多包含100万行和200列(文件范围从100mb到1.6gb)。对于少于300,000行的文件,我可以(非常缓慢地)执行此操作,但是一旦超过该行,就会出现内存错误。我的代码如下所示: 在getstuff函数中使用else子句的原因是,所有符合条件的元素都将一起列在csv文件中,因此,经过它们以节省时间时,我离开了循

  • 问题内容: 我正在尝试使用Java读取CSV文件。有些文件的开头可能有字节顺序标记,但不是全部。如果存在,字节顺序将与第一行的其余部分一起读取,从而导致字符串比较出现问题。 是否存在一种跳过字节顺序标记的简单方法? 问题答案: 你正在以这种方式使用它:

  • 问题内容: 我正在尝试使用Python(仅法语和/或西班牙语字符)读取带有重音字符的CSV文件。基于csvreader的Python 2.5文档(http://docs.python.org/library/csv.html),由于csvreader仅支持ASCII,因此我想出了以下代码来读取CSV文件。 以下是我尝试阅读的CSV文件的摘录: 即使我尝试将编码/解码为UTF-8,我仍然收到以下异常

  • 我在尝试生成一个简单DF的共线性分析时遇到了问题(见下文)。我的问题是,每次尝试运行该函数时,都会检索到以下错误消息: 下面是我正在使用的代码 我试图运行函数的DF如下所示。 我在这里有两个猜测;但不知道如何解决这个问题: -猜测1:np。arrange导致与标头发生某种冲突 -猜想2:问题来自blankseperator,它阻止函数正确地从一列跳转到另一列。问题是,我的CSV文件已经有分隔符(我