Найти - Пользователи
Полная версия: Подсчет и суммирование дубликатов в файле csv
Начало » Python для новичков » Подсчет и суммирование дубликатов в файле csv
1
Cover Story
Всем доброго!
Имею файл
2062	5
2063 4
2064 5
2065 9
Примерно такого типа, где первый столбец код товара, второй его количество.
Так вот, как можно подсчитать количество повторяющихся каждого из кодов, а затем просуммировать их.
Studentik
считывать строчки файла в словарь {'tovar': kolichestvo} либо в sqlite и запросом “SELECT SUM(kolichestvo) FROM tovary GROUP BY tovar”
Cover Story
А если в список запихнуть в виде [,] проблем больше будет?
Cover Story
C sqlite вроде понятно, а как можно это сделать со словарем или списком?
Zubchick
словарь всех проще.
In [3]: from collections import defaultdict

In [4]: d = defaultdict(int)

In [5]: f = [(2062, 5), (2063, 4), (2062, 3)]

In [6]: for index, num in f:
...: d[index] += num
...:

In [7]: d
Out[7]: defaultdict(<type 'int'>, {2062: 8, 2063: 4})
o7412369815963
Zubchick
словарь всех проще.
и быстрее
Cover Story
Спасибо буду разбираться
regall
Тогда уже collections.Counter, в документации даже пример похожий есть
Cover Story
regall collections.Counter помоему в 2.6 нету.
from collections import defaultdict
import csv
reader = csv.DictReader(open('INVENT_R.TXT', "rb"), delimiter="\t", fieldnames=['tovar', 'kolichestvo'])
d = defaultdict(int)
for index, num in reader:
d[index] += num
И что-то не пойму как теперь вывести результат
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB