Суммирование значений дня - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужна помощь в моей программе с тем, как складывать ежедневные значения.Пока все выглядит тактак что это будет примерно так:

1.5.2018 245
2.5.2018 105
4.5.2018 87

Как это можно исключить?Я надеюсь на помощь.Вот пастбин из всех данных, используемых в этом: https://pastebin.com/Tw4aYdPc
Базовый код изначально не мой, отредактировал его немного, чтобы соответствовать моим потребностям.

1 Ответ

0 голосов
/ 21 ноября 2018

Я использовал defaultdict для суммирования ваших значений и приказал напечатать:

import csv
from collections import defaultdict, OrderedDict


def convert(data):
    try:
        return int(data)
    except ValueError:
        return 0


with open('MonthData1.csv', 'r') as file1:
        read_file = csv.reader(file1, delimiter=';')
        delheader = next(read_file)
        data = defaultdict(int)
        for line in read_file:
            valuedata = max(0, sum([convert(i) for i in line[1:5]]))
            data[line[0].split()[0]] += valuedata

        for key in OrderedDict(sorted(data.items())):
            print('{} {}'.format(key, data[key]))

РЕДАКТИРОВАТЬ: Для расчета совокупных значений:

import csv
from collections import defaultdict, OrderedDict


def convert(data):
    try:
        return int(data)
    except ValueError:
        return 0


with open('MonthData1.csv', 'r') as file1:
        read_file = csv.reader(file1, delimiter=';')
        delheader = next(read_file)
        data = defaultdict(int)
        for line in read_file:
            valuedata = max(0, sum([convert(i) for i in line[1:5]]))
            data[line[0].split()[0]] += valuedata

        previous_values = []
        for key, value in OrderedDict(sorted(data.items())).items():
            print('{} {}'.format(key, value + sum(previous_values)))
            previous_values.append(value)

Результаты:

1.5.2018 245

2.5.2018 350

4.5.2018 433

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...