Python如何计算每行中找到的文本的百分比

Python如何计算每行中找到的文本的百分比,python,percentage,Python,Percentage,我有一个包含一列和4000行的CVS,我想制作一个脚本,可以打印每个唯一的单词及其在该CSV上的百分比 例如: Trojan Trojan redirects Exploits Trojan 特洛伊木马:60% 重定向:20% 利用20% 做这件事的简单方法是什么 可以使用“设置”获取所有唯一值,并使用“计数”获取出现次数。用文本除以列表的长度得到百分比: text = ['a', 'a', 'b', 'c'] [(i, text.count(i) * 100. / len(text)) f

我有一个包含一列和4000行的CVS,我想制作一个脚本,可以打印每个唯一的单词及其在该CSV上的百分比

例如:

Trojan
Trojan
redirects
Exploits
Trojan
特洛伊木马:60% 重定向:20% 利用20%

做这件事的简单方法是什么


可以使用“设置”获取所有唯一值,并使用“计数”获取出现次数。用文本除以列表的长度得到百分比:

text = ['a', 'a', 'b', 'c']
[(i, text.count(i) * 100. / len(text)) for i in set(text)]
导致:

[('a', 50.0), ('b', 25.0), ('c', 25.0)]

您可以按如下方式使用字典:

import csv

myDict = {}
row_number = 0

with open('some.csv', 'rb') as f:
    reader = csv.reader(f, delimiter=' ')
    for row in reader:
        row_number +=1
        if row[0] in myDict:
            myDict[row[0]] += 1
        else:
            myDict[row[0]] = 1

for word in myDict:
    print word, float(myDict[word])/row_number
>>> ================================ RESTART ================================
>>> 
Trojan 0.6
Exploits 0.2
redirects 0.2
>>> 
工作内容如下:

import csv

myDict = {}
row_number = 0

with open('some.csv', 'rb') as f:
    reader = csv.reader(f, delimiter=' ')
    for row in reader:
        row_number +=1
        if row[0] in myDict:
            myDict[row[0]] += 1
        else:
            myDict[row[0]] = 1

for word in myDict:
    print word, float(myDict[word])/row_number
>>> ================================ RESTART ================================
>>> 
Trojan 0.6
Exploits 0.2
redirects 0.2
>>> 

我想要一个好成绩和一份不用工作的工作。我不是要求你们做这件事,只是暗示或帮助你们做这件事。我在谷歌上找不到太多关于这方面的信息,我想知道difflib可以使用什么?或者只使用
set()
而不使用任何额外的依赖项
[(i,text.count(i)*100./len(text))for i in set(text)]
@danilryzhkov谢谢。每天学习:)这似乎是我需要的,非常感谢!这可以导入csv文件吗?我已经更新了这个问题,但似乎不起作用。仍然无法使它起作用,现在我得到的错误单词没有定义,但它在这里“对于myDict中的单词:”对吗?@JohnPDC我在编辑后无意中删除了myDict变量。新的更新答案似乎没问题。我又加了一次。你注意到你忘了,但我又一次得到了“名字错误:名字‘单词’没有定义。”