Вы были недалеко, но вместо sums[line[1]+line[2]+line[3]+line[4]+line[5]+line[6]+line[7]+line[8]].append(line[1])
вы должны вычислить ключ на основе первого столбца line[0]
, извлекая дату с подстрокой:
with open('solarData.csv', 'r') as inp, open('output.csv', 'w', newline = '') as outp:
reader = csv.reader(inp, delimiter = ';')
headers = next(reader)
for line in reader:
line = [convert(i) for i in line]
sums[line[0][:10]].append(line[1]+line[2]+line[3]+line[4]+line[5]+line[6]+line[7]+line[8])
writer = csv.writer(outp, delimiter = ';', dialect = 'excel')
for k, v in sums.items():
print('{} : {}'.format(k, sum(v)))
writer.writerow([k, sum(v)])
дает
2016-01-01;369416.0
2016-01-02;4825.0
2016-01-03;0.0
Вы также можете предварительно вычислить сумму вместо добавления в список, а также вывести суммарные значения:
sums = defaultdict(lambda:0)
with open('solarData.csv', 'r') as inp, open('output2.csv', 'w', newline = '') as outp:
reader = csv.reader(inp, delimiter = ';')
headers = next(reader)
for line in reader:
line = [convert(i) for i in line]
sums[line[0][:10]] += line[1]+line[2]+line[3]+line[4]+line[5]+line[6]+line[7]+line[8]
writer = csv.writer(outp, delimiter = ';', dialect = 'excel')
cumulative = 0
for k, v in sums.items():
cumulative += v
print('{} : {}\t{}'.format(k, v, cumulative))
writer.writerow([k, v, cumulative])