【问题标题】:How can I export two lists of strings into two columns in a csv file without getting separated如何将两个字符串列表导出到 csv 文件中的两列而不分开
【发布时间】:2019-05-03 12:20:52
【问题描述】:

我有两个列表reviews_text(包含所有评论)和review_label(告诉评论是Positive 还是Negative)。我需要将它们导出到带有reviews_textreviews_label 两列的csv 文件。

我尝试了以下代码,但无法解决。

np.savetxt('reviews.csv', [p for p in zip(review_text, review_label)], delimiter=',', fmt='%s', encoding="utf-8")

将它们保存为 csv 文件后,我希望 review_text 在单个列中,但它被保存在不同的列中

当我在 Excel 上打开 csv 文件时,我得到了类似的东西

输出如下所示

         A       ,       B       ,       C       ,       D       ,       E

1 Very rustic...   off Knick...    salad           potatoes were..  Negative

2 Went here...     a crepe...      Negative

3 Huge fan of..    hot choc...     good place..    Positive

但我希望输出看起来像这样

                   A                                     ,     B      

1 Very rustic place. Mismatched furniture,off Knick...      Negative

2 Went here for coffee, a crepe and salad but bad p...      Negative

3 Huge fan of their meatball, hot chocolate, good p...      Positive

我认为每个, 之后的评论正在分离并进入一个新列。有什么办法解决吗?谢谢

编辑:

reviews_text 的输出看起来像这样。希望这有助于以任何方式解决问题。

输出:

'对于他们所拥有的东西来说太贵了......我有一个名为 la drolet 的本尼迪克蛋盘,但它有一个我个人不喜欢的带有沙漠的奇怪配菜汤。我不认为我会再回到那里......', “非常质朴的地方。不匹配的家具,远离 Knick 的小摆设。会成为一个很棒的 Instagram 照片的地方。菜单上有很多种类。我吃了他们的早午餐。里面有鸡蛋、沙拉、土豆、汤和甜点。物有所值。我被塞满了,实际上无法完成土豆。友好的服务。一定会再次访问。", '我强烈推荐 Au Festin de Babette 的早午餐。他们选择的早午餐与大多数其他地方不同。我通常去的一个包括热饮、汤、焗烤 dauphinois、两个本尼迪克蛋和巧克力慕斯。所有的物品都很棒,尤其是焗烤 dauphinois。这顿饭通常非常令人满意,价格不到 20 美元,这对于蒙特利尔的早午餐来说是合理的。内部非常可爱,感觉很亲切,服务通常很好。', ...]

【问题讨论】:

  • 查看 np.array([p for p ...])。这就是要保存的内容,一行/一列。

标签: python python-3.x numpy export-to-csv


【解决方案1】:

如果您认为这是因为“,”,请将代码中的分隔符更改为其他内容。您还可以在您的评论数据集中编码“,”并稍后对其进行解码。

【讨论】:

  • 感谢您的回复,但我无法解决问题,因为我尝试使用\t 而不是, 更改分隔符,但文本现在会转到下一行。我编辑了帖子并添加了reviews_text 的输出。希望无论如何都能有所帮助。
【解决方案2】:

如果您想要有效的答案,您应该指定您正在使用的一小部分数据。假设您有这种情况:

review_text = ['Very rustic place. Mismatched furniture,off Knick', 'Went here for coffee, a crepe and salad but bad p...', 'Huge fan of their meatball, hot chocolate, good p... ']  
review_label = ["Negative", "Negative", "Positive"]

我在您的代码中发现了两个问题:一个是对 zip 对象的讨厌的列表理解,另一个是分隔符本身。

转换数据的快速修复如下:

import numpy as np  
np.savetxt('reviews.csv', np.asarray([review_text, review_label]).T, delimiter='\t', fmt='%s', encoding="utf-8")

值得注意的是,打开文件时,必须在excel的导入工具中选择只选择一个tab

【讨论】:

  • 感谢您的回复,但我无法解决问题,因为在使用\t 而不是, 之后,文本现在会转到下一行。我编辑了帖子并添加了reviews_text 的输出。希望无论如何都能有所帮助。
  • 我添加了一些输入,以便您可以重现该示例。
猜你喜欢
  • 1970-01-01
  • 2023-01-20
  • 1970-01-01
  • 2017-06-20
  • 2019-09-17
  • 1970-01-01
  • 2017-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多