如何读取带有大量逗号的变量“评论”的 CSV?

Posted

技术标签:

【中文标题】如何读取带有大量逗号的变量“评论”的 CSV?【英文标题】:How can I read a CSV with a variable "comments" that's plenty of commas? 【发布时间】:2016-04-07 19:38:22 【问题描述】:

我正在尝试从 Airbnb 页面 http://insideairbnb.com/get-the-data.html 读取巴塞罗那的 .csv 文件详细评论数据。

但问题是,有一个专门用于人们的 cmets 的变量,而且它有很多逗号,所以当我尝试读取 .csv 时,它完全被扭曲了。我会很感激一些帮助!

非常感谢!

【问题讨论】:

read.csv('reviews.csv') 对我来说工作得很好,你实际使用了什么代码? cmets 用引号引起来,因此其中的逗号无关紧要 【参考方案1】:

您可以通过 sep2 参数使用 data.table 包中的 fread()

来自文档:

sep2:列内的分隔符。

我在阿姆斯特丹数据上进行了尝试,效果很好。它会引发警告,但这只是由于 data.table 开发人员对 fread 的编程方式造成的。

DT = fread(".../location/reviews.csv", sep2=",")
nrow(DT) #returns 163351 (which seems to be the correct number)
head(DT$comments,1)

返回:

[1] “房间虽小但很舒适。这个地方很干净,但床单本来可以更干净的。公寓装饰精美,距离市中心仅 20 分钟(步行),因此非常舒适对我们来说很方便。然而,我们在其中一个晚上有一个非常不愉快的经历,因为他们决定在星期四晚上举办一个派对,一直持续到早上 5:30。墙壁很薄,我们可以听到他们的音乐和他们的谈话整夜。人们也整夜吸烟,所以香烟的味道对我们来说是难以忍受的,因为我们不是吸烟者,而且我们房间里的气味很浓。Cedaria 非常有帮助,可以提前为我们提供有关城市景点的提示,但如果我们知道我们会有这种体验,我们就会呆在其他地方。”

仅供参考,fread 和 data.table 非常快。我喜欢使用那个包。

【讨论】:

非常感谢!它完美地工作!我会记住这个包,它真的很有用! 我认为sep2 还没有实现,是吗? 我不认为它是以文档描述的方式实现的。它不返回一列字符串列表。我只知道我以前曾将它用于这些目的,而且效果很好。

以上是关于如何读取带有大量逗号的变量“评论”的 CSV?的主要内容,如果未能解决你的问题,请参考以下文章

读取包含嵌入逗号的引用字段的 csv 文件

Pyspark:读取带有双引号和逗号的字段的csv文件

我们如何使用 python sdk 在 Apache Beam 中读取带有附件的 CSV 文件?

双引号内带有逗号和字符串的 C++ CSV 行

如何从csv文件中读取包含逗号的列表作为列?

如何读取 csv 文件并将逗号从数字转换为点?