Найти - Пользователи
Полная версия: Как произвести расчеты в csv файле
Начало » Python для новичков » Как произвести расчеты в csv файле
1
Mary_p
Добрый день! помогите, пожалуйста-та, разобраться, как произвести расчет? есть csv файл со столбцами названиями компаний и суммой, которую они вложили. Необходимо посчитать общую сумму в расчете одинаковых компаний.
 import csv
company = {}
with open('TechCrunchcontinentalUSA1.csv', 'r') as f:
    f_csv = csv.DictReader(f)
    for row in f_csv:
       print(row['company'], row['raisedAmt'])
выводит следующий список:
LifeLock 6850000
LifeLock 6000000
LifeLock 25000000
MyCityFaces 50000
Flypaper 3000000
Infusionsoft 9000000
gAuto 250000
ChosenList.com 140000
ChosenList.com 233750
Digg 8500000
Digg 2800000
Facebook 500000
Facebook 12700000
Facebook 27500000
Facebook 300000000
Facebook 40000000
Facebook 15000000
Facebook 100000000

но как их сгруппировать у меня нет понимания. Буду признательна за помощь. То есть нужно, чтобы итог был:
LifeLock 37_850_000
Т.к затем мне нужно будет вывести топ 5 компаний.
py.user.next
  
>>> text = """\
... LifeLock 6850000
... LifeLock 6000000
... LifeLock 25000000
... MyCityFaces 50000
... Flypaper 3000000
... Infusionsoft 9000000
... gAuto 250000
... ChosenList.com 140000
... ChosenList.com 233750
... Digg 8500000
... Digg 2800000
... Facebook 500000
... Facebook 12700000
... Facebook 27500000
... Facebook 300000000
... Facebook 40000000
... Facebook 15000000
... Facebook 100000000"""
>>> 
>>> total_sums = {}
>>> for i in text.splitlines():
...     company, money_text = i.split()
...     money = int(money_text)
...     if company in total_sums:
...         total_sums[company] += money
...     else:
...         total_sums[company] = money
... 
>>> for i, j in total_sums.items():
...     print(i, j)
... 
LifeLock 37850000
MyCityFaces 50000
Flypaper 3000000
Infusionsoft 9000000
gAuto 250000
ChosenList.com 373750
Digg 11300000
Facebook 495700000
>>> 
>>> top_companies = sorted(total_sums.items(), key=lambda i: i[1], reverse=True)
>>> top_five = top_companies[:5]
>>> for i, j in top_five:
...     print(i, j)
... 
Facebook 495700000
LifeLock 37850000
Digg 11300000
Infusionsoft 9000000
Flypaper 3000000
>>>
Mary_p
py.user.next спасибо!!
Чуть изменила под себя
 import csv
lst_1 = {}
total_sums = {}
with open('TechCrunchcontinentalUSA.csv', 'r') as f:
    f_csv = csv.DictReader(f)
    for row in f_csv:
       money = int(row['raisedAmt'])
       companies = row['company']
       if companies in total_sums:
            total_sums[companies] += money
       else:
            total_sums[companies] = money
for comp, summa in total_sums.items():
     print(comp, summa)
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