【问题标题】:can't use read_csv with fields having comma between \"不能将 read_csv 与 \" 之间有逗号的字段一起使用
【发布时间】:2018-07-16 18:43:36
【问题描述】:

我有下表:

\"Column,One\",Column Two, Column Three

我正在尝试使用 Pandas read_csv阅读它

dataset = pd.read_csv(fin, header=None, quotechar='"', escapechar='\\', quoting=0)

我想要的存储表格的方式是:

0             1              2 
Column,One    Column Two     Column Three

但目前,当我打印表格时,我得到:

0         1       2            3
"Column   One"    Column Two   Column Three

如果有人可以帮助我,将不胜感激。

提前致谢。

【问题讨论】:

  • 什么输出?您的命令创建了一个数据框,但不是输出,请澄清。
  • @xyzjayne 我假设输出 = print(dataset)... 的结果 ;-)
  • 如果 "\"Column,One\",Column Two, Column 3" 是您的数据在 CSV 中的表示方式,那么我建议负责此操作的人迅速采取行动。
  • 感谢coldspeed的澄清,“输出”是指打印(dataset.head())。是的,不幸的是,表格是以给定的格式存储的。
  • 很确定这不是“合法的”CSV,因为任何不打算成为分隔符的分隔符实例都必须转义。否则,将没有明确的方法来指定实际上看起来像不想要的输出的数据集。您唯一真正的选择是在将其输入您的 CSV 阅读器之前制作某种输入清理程序,或者合并两端用引号包围的列。

标签: python python-3.x pandas csv


【解决方案1】:
df['0'] = df[['0', '1']].apply(lambda x: ''.join(x).translate(str.maketrans('','','"')), axis=1)

唯一的出路是在读取数据框后删除'"',然后将第0列和第1列合并。

【讨论】:

    【解决方案2】:

    您可以尝试转义逗号吗? "列\,一",二列,三列

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-27
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 2019-08-25
      • 2014-07-28
      • 2019-01-27
      • 2019-10-20
      相关资源
      最近更新 更多