【问题标题】:Csv file incorrectly loading in pandas csvcsv 文件在 pandas csv 中错误加载
【发布时间】:2019-07-24 03:44:30
【问题描述】:

我有 csv,我正在尝试使用 pd.read_csv 加载它。但是,某些文件行被读取为一列,而其他文件被正确读取到单独的列中。 我认为问题在于包含引号的行,但我不想删除它们。

我尝试使用quotechar,但没有帮助

import pandas as pd
df = pd.read_csv('file1.csv', sep=',', quotechar='"')

我正在为您提供两行的 csv 内容,第一行应该读取错误,而第二行正确:

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
a,br,c,,,,d,e,0,False,False,False,"bs,C",19/07/2018 23:25:12,27/05/2018 23:09:21
a,b,c,,,,d,e,2,False,False,False,U D,19/07/2011 11:21:02,18/07/2011 12:21:00

由于上面的示例适用于其他人,因此我提供了我在尝试加载 csv 文件时得到的屏幕截图:

【问题讨论】:

  • df = pd.read_clipboard(sep=',', quotechar='"') 似乎将这两行读入 14 列
  • 不知何故,当您将其放入 csv 文件时,它无法正常工作
  • 你用的是什么版本的 Python?
  • python 版本。 3.7
  • 这对我来说也很好。

标签: python pandas csv


【解决方案1】:

这不是答案,只是为了澄清。如果你执行这段代码,你会得到什么:

import io
raw="""
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
a,br,c,,,,d,e,0,False,False,False,"bs,C",19/07/2018 23:25:12,27/05/2018 23:09:21
a,b,c,,,,d,e,2,False,False,False,U D,19/07/2011 11:21:02,18/07/2011 12:21:00
"""
df= pd.read_csv(io.StringIO(raw), sep=',')
df

如果看起来没问题,但相同的行在 csv 中产生了问题,这可能是编码问题(已通过复制文本删除),如果是这样,您可能可以通过添加适当的 @ 来解决整个问题987654322@ 选项为read_csv。 另一方面,如果您可以使用上面的代码在您的机器上重现该问题,则说明发生了一些奇怪的事情,或者您的 pandas 版本包含错误。这是因为上面的代码对我有用,而且从你问题的 cmets 看来,它似乎也适用于其他人。

输出对我来说是这样的:

   0   1  2   3   4   5  6  7  8      9     10     11    12                   13                   14
0  a  br  c NaN NaN NaN  d  e  0  False  False  False  bs,C  19/07/2018 23:25:12  27/05/2018 23:09:21
1  a   b  c NaN NaN NaN  d  e  2  False  False  False   U D  19/07/2011 11:21:02  18/07/2011 12:21:00

所以“12”列的第一条记录包含“bs,C”,这是正确的,对吧?

【讨论】:

  • 有趣的是,如果我将 csv 文件保存为 txt,那么它会正确读取数据
  • 什么意思?所以它正确导入了列,但没有从您的文件中正确导入相应的行?
  • 是的,当我直接读取 .csv 文件时它不起作用,复制代码和使用您的代码可以正常工作。但我需要使用该 csv 文件来读取数据。
  • 那么我很确定,这是一个编码问题。只需在记事本++等编辑器或任何其他显示编码的编辑器中打开原始csv,它就会检测并查看它的想法。如果是utf8,还要检查是否有BOM
  • 如果你还没有这样做,可能它也有助于在十六进制编辑器中查看文件,看看是否有一个不可打印的字符,在第一个数据行之前的某个地方,这会破坏一些东西.
猜你喜欢
  • 2022-07-25
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 2014-09-14
  • 2018-05-05
  • 2020-08-09
  • 2020-11-19
相关资源
最近更新 更多