【问题标题】:Pandas doesn't read a csv correctlyPandas 无法正确读取 csv
【发布时间】:2019-11-13 08:15:30
【问题描述】:

我是 pandas 和 keras 的新手,我正在尝试构建一个网络来生成词嵌入。我正在关注这个guide,试图使其适应我的特定数据集。我应该从我的dataset(DBLP-ACM,您可以在此处下载)中选择一些列进行进一步的文本阐述,但 pandas 无法按预期工作。

我已经尝试过使用与上面链接的指南相同的语法,但是 pandas 将每一列放在一个大列中(名称很奇怪:['id,"title","authors","venue","年”;;;;;'])。不用说,很多行都显示像

这样的错误

line 393: expected 7 fields, saw 11

我还尝试了其他解决方案,例如

quoting = csv.QUOTE_NONE

engine = "python"

但没有按预期工作。基本上,我不明白为什么这个数据集看起来格式不正确(因为用 csv 查看器打开它看起来没问题)以及如何使用 pandas 正确读取它,并将其提交到程序的下一部分。

编辑:正如我在 cmets 中指出的那样,我在拆分数据集(用于训练和测试)时做错了,并且在此过程中出现了格式错误。仅供参考,我只是使用了一个在线 csv 拆分器。公认的解决方案对原始数据集完美无缺。

【问题讨论】:

  • 尝试将engine = "python" 传递到pandas.read_csv() 的函数调用中。这有什么不同吗?
  • 我在每一行都有一个Skipping line 1: ',' expected after '"'。不过,还是有区别的。
  • 不完全确定您的错误是什么。尝试粘贴错误?
  • pastebin.com/SX8eFFvF 这是完整的错误。它跳过数据集中的每一行,简单地说(有 1400 行,因为我拆分了数据集)

标签: python pandas csv tensorflow keras


【解决方案1】:
df = pd.read_csv("DBLP2.csv", sep=",", quotechar="\"", encoding="latin_1")

这对我有用。您没有提供任何示例代码,我不知道为什么它不适合您。

【讨论】:

  • 经过一番调查,您的解决方案似乎有效。我将原始 csv 拆分为 2 个不同的 csv(训练和测试)。使用此解决方案,我仍然在拆分的 csv 上有错误,但在原始文件上没有。我可能在拆分时做错了什么。有什么建议吗?
  • 我敢打赌你现在正在混合换行符。您应该读入您的数据框,对其进行采样,然后使用.to_csv() 将其输出,而不是使用糟糕的 Windows 文本编辑器或 excel 等。
  • 我以不同的方式拆分数据,现在一切正常。再次感谢!以前的错误(我在原始文件中遇到的)可能是由引号或编码引起的。
猜你喜欢
  • 2020-03-11
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-18
  • 2019-08-17
  • 2017-07-19
相关资源
最近更新 更多