В принципе у меня есть 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']
Я хотел, чтобы определить, сколько раз слово «голубой» произошло для каждого из списка, таким образом, что выход в основном сумма слова «голубой», учитывая первый атрибут, который является магазин A, B и C, то необходимо вывод должен быть:
['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
также не дает мне необходимую продукцию. Что, кажется, моя ошибка? Спасибо за помощь.
Ваш разделитель установлен в ''. Он будет разделять ваш вход на основе ',', а не новых строк. Попробуйте 'print (line)' внутри вашего цикла 'for', чтобы вы могли точно видеть, какие строки подаются. –
Действительно ли ваш csv содержит эти данные (списки python)? или вы помещаете представление данных на python здесь? –