如何在CSV文件中将单词及其频率写入两个单独的列

时间:2016-05-26 21:21:13

标签: python csv two-columns

我有一个所需的输入(来自previous questionCounter对象),如下所示:

 (u'twice', 4302),

 (u'thru', 4286),

 (u'mailing', 4276),

 (u'specifically', 4274),

现在,我正在尝试将单词及其频率值写入CSV文件。我尝试了下面的代码,我从这个网站上的类似问题得到了:

with open("fiancee_wordfreq.csv" , "wb") as f:
     writer = csv.writer(f)  
     for val in cn:
         writer.writerow([val])

当我在Excel中打开CSV文件时,我发现只有单词而不是它们的频率。因此,“具体”是A列中列出的单词之一,但不是4274.我希望在A列中有单词,在B列中有频率,但我根本无法显示频率。

1 个答案:

答案 0 :(得分:1)

通过Counter迭代就像在字典中迭代一样 - 你只能获得密钥。 writerow()需要一个序列,因此val是不够的,但将其包装在括号中以使list[val]一起只允许您将该键作为单个列写入。使用items()方法获取密钥及其关联值:

with open("fiancee_wordfreq.csv" , "wb") as f:
     writer = csv.writer(f)  
     for pair in cn.items():
         writer.writerow(pair)

或者使用每个键来索引Counter

with open("fiancee_wordfreq.csv" , "wb") as f:
     writer = csv.writer(f)  
     for val in cn:
         writer.writerow([val, cn[val]])