【发布时间】:2015-11-16 22:49:26
【问题描述】:
A 有一个 csv 文件,我希望该文件中包含的 all 单词的字数以单独的 CSV 格式显示,其中包含 word, count 列。
所以我写的python脚本如下:
#!/usr/bin/python
from collections import Counter
import pandas
wordslist = []
f = open('Sample.csv')
for word in f.read().split():
wordslist.append(word)
Freq = Counter(wordslist)
A = Freq.items()
# for item in Freq.items():
# print(item)
# print len(Freq)
pd = pandas.DataFrame(A)
pd.to_csv("WordCounter.csv", header=False, encoding='utf-8')
csv中的单词数为6672,我查到如下:
cat Sample.csv | wc -w
但是,我假设脚本的输出 csv 中的行数也应该等于 6672(即我的输入文件 Sample.csv 中的总单词数),因为每个单词及其计数都存储在一个输出文件的行。
但是,它似乎比 6672 低 1036:
cat WordCounter.csv | wc -l
我错过了什么?
【问题讨论】:
-
只是为了确定一下,您可以使用默认文本编辑器来获取字数吗?
-
wc认为a a a是三个词。 -
@Arengorn 我不这么认为。我想要每个单词的计数。简而言之,对所有单词的频率分析是我想要的。默认文本编辑器的字数不会提供此类统计信息。
-
要验证您的单词表,请查看
sum(Freq.values())。这是它找到的单词总数。 -
@PeterDeGlopper:错字修复,以防有人遇到 TypeError 并感到困惑:
sum(Freq.values())。