【发布时间】:2016-03-11 06:57:13
【问题描述】:
基本上我有一个 csv 文件,其数据如下所示:
['Store A', '2015-03-04', '00948', 'Red','A','AA']
['Store C', '2015-05-06', '00948', 'Blue','A','BB']
['Store B', '2015-07-08', '101130', 'Red','B','CC']
['Store A', '2015-09-10', '111011', 'Blue','C','DD']
['Store C', '2015-10-11', '101510', 'Red','A','EE']
['Store B', '2015-11-12', '101459', 'Red','B','FF']
['Store C', '2015-15-04', '01836', 'Blue','C','GG']
['Store B', '2015-30-05', '02201', 'Blue','A','HH']
['Store A', '2015-18-06', '04022', 'Red','C','II']
['Store C', '2015-07-07', '11056', 'Blue','B','JJ']
['Store C', '2015-08-05', '10149', 'Red','D','KK']
['Store A', '2015-10-04', '113569', 'Red','A','LL']
['Store B', '2015-12-03', '005410', 'Blue','C','MM']
['Store A', '2015-15-02', '053410', 'Blue','E','NN']
['Store A', '2015-16-04', '113410', 'Red','J','OO']
我想确定每个列表中出现“Blue”这个词的次数,这样输出基本上是给定第一个属性 Store A、B 和 C 的“Blue”这个词的总和,即需要的输出应该是:
['Store A','Blue','2']
['Store B','Blue','2']
['Store c','Blue','3']
我的代码如下:
csvReader = csv.reader(open('count.csv','rb'), delimiter=',', quotechar='"')
for line in csvReader:
print line.count('Blue')
显然结果是:
>>>
0
0
0
.
.
.
.
0
0
我也试过代码:
csvReader = csv.reader(open('count.csv','rb'), delimiter=',', quotechar='"')
for line in csvReader:
count_blue= [[x, line.count('Blue')] for x in set(line)]
print count_blue
它也没有给我所需的输出。我的错误似乎是什么?感谢您的帮助。
【问题讨论】:
-
您的分隔符设置为
,。它将根据,而不是换行符拆分您的输入。在for循环中尝试print(line),这样您就可以准确地看到正在输入的行。 -
您的 csv 是否真的包含该数据(python 列表)?或者你把数据的python表示放在这里?
标签: python list count counter frequency