python 中的计数器未显示所有单词
Counter in python not showing all words
A 有一个 csv 文件,我想要 所有 文件中包含的单词的字数统计在一个单独的 CSV 中,列为单词,计数。
所以我写的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)作为每个字及其计数存储在输出文件的一行中。
但是,好像是1036比6672低:
cat WordCounter.csv | wc -l
我错过了什么?
每个 UNIQUE 单词在输出文件的一行中存储一次。您的文件中没有 6672 个唯一单词。如果有输出文件将是:
word0 | 1
word1 | 1
word2 | 1
而实际上是:
word0 | 10
word1 | 5
word2 | 2
你可能还应该去除标点符号等以获得你真正想要的,否则会发生这种情况:
word0 | 4
word0, | 2
word0. | 3
编辑:您还可以稍微简化一下代码:
替换
wordslist = []
f = open('Sample.csv')
for word in f.read().split():
wordslist.append(word)
与:
with open('Sample.csv') as f:
wordslist = f.read().split()
A 有一个 csv 文件,我想要 所有 文件中包含的单词的字数统计在一个单独的 CSV 中,列为单词,计数。
所以我写的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)作为每个字及其计数存储在输出文件的一行中。
但是,好像是1036比6672低:
cat WordCounter.csv | wc -l
我错过了什么?
每个 UNIQUE 单词在输出文件的一行中存储一次。您的文件中没有 6672 个唯一单词。如果有输出文件将是:
word0 | 1
word1 | 1
word2 | 1
而实际上是:
word0 | 10
word1 | 5
word2 | 2
你可能还应该去除标点符号等以获得你真正想要的,否则会发生这种情况:
word0 | 4
word0, | 2
word0. | 3
编辑:您还可以稍微简化一下代码:
替换
wordslist = []
f = open('Sample.csv')
for word in f.read().split():
wordslist.append(word)
与:
with open('Sample.csv') as f:
wordslist = f.read().split()