计算在python中出现在同一行的csv文件中出现的相同单词数
我有一个外部csv文件,我想计算出现在同一行中的相同单词的数量。计算在python中出现在同一行的csv文件中出现的相同单词数,python,csv,Python,Csv,我有一个外部csv文件,我想计算出现在同一行中的相同单词的数量。 我的csv看起来像这样 Timestamp,Destination,Source 2015-05-25,A,B 2015-05-25,A,B 2015-05-25,A,B 2015-05-25,C,D 2015-05-25,C,D 2015-05-25,E,F 2015-05-25,E,F 2015-05-25,E,F 2015-05-25,E,F 在上面的csv文件中,单词A、B似乎相互通信了3次C、2次D和4次E、F,因此我
我的csv看起来像这样
Timestamp,Destination,Source
2015-05-25,A,B
2015-05-25,A,B
2015-05-25,A,B
2015-05-25,C,D
2015-05-25,C,D
2015-05-25,E,F
2015-05-25,E,F
2015-05-25,E,F
2015-05-25,E,F
在上面的csv文件中,单词A、B似乎相互通信了3次C、2次D和4次E、F,因此我想使用python将此信息写入csv文件。应该是这样的
Destination,Source,Counts
A,B,3
C,D,2
E,F,4
使用,您可以轻松计算单词的出现次数
import csv
from collections import Counter
with open('words.csv') as f:
next(f) # skip header
occurrence = Counter(tuple(row[1:3]) for row in csv.reader(f))
with open('occurrence.csv', 'w') as f:
writer = csv.writer(f)
writer.writerow(['Destination', 'Source', 'Counts'])
for (dest, src), cnt in occurrence.items():
writer.writerow([dest, src, cnt])
您几乎拥有了所有的逻辑,只需编写以下项目:
import csv
from collections import Counter
from itertools import imap
from operator import itemgetter
with open('in.csv') as f, open("out.csv", "w") as o:
wr = csv.writer(o)
next(f)
o.write("Destination,Source,Counts")
wr.writerows([a, b, c] for (a, b), c in
Counter(imap(itemgetter(1, 2), csv.reader(f))).iteritems())
out.csv:
Destination,Source,Counts
A,B,3
C,D,2
E,F,4
请与我们分享您迄今为止的尝试。。。还有很多路要走。这正是我想要的@falsetru先生。