【问题标题】:How to access and manipulate individual elements in a csv file?如何访问和操作 csv 文件中的单个元素?
【发布时间】:2020-04-22 20:42:30
【问题描述】:

我正在尝试对 csv 文件中的一些数据进行一些预处理。该文件包含有关各种拉面的信息。文件中每一行的第三个元素包含一个字符串,该字符串由 1 或 2 到 10 个单词组成。这些词描述了拉面(例如:“Spicy Noodle Chili Garlic Korean”或“Cup Noodles Chicken”等)。

有超过 2,500 条评论,我正在尝试跟踪所有拉面的描述中最常用的 100 个词。然后我回顾我的数据,只保留出现在 100 个最常用的单词中的单词。剩下的我都扔了。

作为参考,我的标题如下所示: 评论#,品牌,品种,风格,国家,明星,前十名

我不太确定如何访问每个描述中的各个单词。通过描述,我指的是“品种”列。 作为一种测试方式,我有类似的东西:

reader = csv.reader(open('ramen-ratings.csv', 'r'))
outputfile = open('variety.txt', 'w')

next(reader)

for line in reader:
    for word in line[2]:
        print(word)

但这只会打印每个单独的字符,一次一个,在他们自己的行上。它不是识别字符串中的单个单词,而是识别单个字符。

我知道非常基本的问题,但我对 python 非常陌生,所以可以使用一些帮助。谢谢!

【问题讨论】:

    标签: python string csv split


    【解决方案1】:

    代替

    for word in line[2]:
    

    使用

    for word in line[2].split():
    

    解释:

    line[2] 是——正如你所写的——单词的字符串。通过遍历字符串,您可以遍历其各个字符。

    另一方面,.split() 方法返回该字符串的单个单词列表(这是您想要的)。

    【讨论】:

    • 这就是我一直在寻找的 - .split() 函数。不知道,谢谢!
    【解决方案2】:

    由于line[2] 是一个字符串,迭代它意味着迭代每个字符。如果要遍历每个单词,则应将字符串拆分为单词。

    您可以为此使用split 函数,该函数默认按空格将一个字符串拆分为字符串列表(除非您提供另一个字符作为拆分依据):

    for line in reader:
        for word in line[2].split():
            print(word)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-18
      • 2020-02-03
      • 2012-11-22
      • 2018-01-29
      • 1970-01-01
      • 2019-10-23
      • 1970-01-01
      • 2019-02-19
      相关资源
      最近更新 更多