我有一个csv文件。 csv文件的结构是:
Name Hour Location
A 4 San Fransisco
B 2 New York
C 4 New York
D 7 Denton
E 8 Boston
F 1 Boston
如果你观察上面的数据,有
2 New York and
2 Boston
我尝试使用表格包。我尝试了表格包文档中提到的教程超过7个小时。但我完成了。
任何人都可以帮助我,如何使用Python提取位置列中该Csv文件中常用词的计数。
谢谢。
答案 0 :(得分:9)
data = """Name\tHour\tLocation
A\t4\tSan Fransisco
B\t2\tNew York
C\t4\tNew York
D\t7\tDenton
E\t8\tBoston
F\t1\tBoston
"""
import csv
import StringIO
from collections import Counter
input_stream = StringIO.StringIO(data)
reader = csv.reader(input_stream, delimiter='\t')
reader.next() #skip header
cities = [row[2] for row in reader]
for (k,v) in Counter(cities).iteritems():
print "%s appears %d times" % (k, v)
输出:
San Fransisco appears 1 times
Denton appears 1 times
New York appears 2 times
Boston appears 2 times
答案 1 :(得分:6)
不确定您要分隔的是什么,但示例显示为4个空格,因此这是一个解决方案。
如果您实际按标签分隔,请使用@MariaZverina的答案
import collections
with open('test.txt') as f:
next(f) # Skip the first line
print collections.Counter(line.rstrip().rpartition(' ')[-1] for line in f)
输出:
Counter({'New York': 2, 'Boston': 2, 'San Fransisco': 1, 'Denton': 1})
答案 2 :(得分:0)
如果文件不是太大,最天真的方式是: