pd.read_csv未正确解析tsv:已阅读为什么某些选项卡无法识别?

fhity93d  于 2023-09-27  发布在  其他
关注(0)|答案(2)|浏览(94)

标题

我最近在imdb上下载了一个关于电影的公共数据集(https://datasets.imdbws.com/title.basics.tsv.gz)。
然而,在我将其加载到数据框中之后进行的检查显示,有些行没有被正确解析,因为有些制表符没有被识别为分隔符,尽管几乎所有的行都不是这种情况。screenshot: tabs are not recognized in some rows
有人知道发生什么事了吗为什么大多数行都能正确解析,而这些行却不能?是我做错了什么,还是看起来像是数据集的问题?
作为一个编程新手,起初我以为这与编码有关,但根据https://developer.imdb.com/non-commercial-datasets/,UTF-8是我应该使用的。它看起来也不像是由引号或其他特殊字符引起的问题。现在我被困住了
P.S.在这张图片中另一件让我困惑的事情是,尽管添加了条件(primaryTitle!=originalTitle)。这和dtype有关系吗?如果你也能在这方面给我一些启发,我将不胜感激!

sc4hvdpw

sc4hvdpw1#

看看这些是否有帮助:

  • 检查文件分隔符您可以在阅读数据时显式指定此分隔符,如以下代码所示,使用tab(\t)作为分隔符,就像使用tsv一样:

df = pd.read_csv(“example.basic.tsv.gz”,sep='\t',encoding='utf-8')

  • 数据清理某些行可能具有不一致的制表符间距或额外的空格
  • 对于某些行具有相同的主标题和原始标题的问题,您可以使用条件(df ['primaryTitle']!= df['originalTitle'])。
mnemlml8

mnemlml82#

你没有做错什么,只是源数据有问题。我能够成功读取数据,只需:df = pd.read_csv('title.basics.tsv', sep='\t', encoding='utf-8')
并且仍然可以看到这些行中的选项卡包含在您所标识的标题中。这是由于数据中的引用不正确-您可以看到电影id tt10233364,制表符包含在引号中:

tt10233364      tvEpisode       "Rolling in the Deep Dish       "Rolling in the Deep Dish       0       2019    \N      \N      Reality-TV

您将需要返回并手动清理这些(或者您可以直接丢弃它们)

相关问题