Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 6, 2021 11:54:50

Mary_p
Зарегистрирован: 2021-11-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как произвести расчеты в csv файле

Добрый день! помогите, пожалуйста-та, разобраться, как произвести расчет? есть 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 компаний.

Офлайн

#2 Ноя. 6, 2021 12:40:30

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Как произвести расчеты в csv файле

  
>>> 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
>>>



Отредактировано py.user.next (Ноя. 6, 2021 12:45:31)

Офлайн

#3 Ноя. 6, 2021 13:42:13

Mary_p
Зарегистрирован: 2021-11-06
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Как произвести расчеты в csv файле

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)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version