我有一个所需的输入(来自previous question的Counter
对象),如下所示:
(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列中有频率,但我根本无法显示频率。
答案 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]])