I have a list of lists with multi columns:
column = [id, date,col1, col2...coln]
list_OfRows = [[1,date1, 10,20 ...23],
[1,date1, 1,10 ...33],
[2,date2, 3,7...8],
[2,date2, 21,9...23],
[2,date3, 10,56 ...20],
[2,date4, 10,20 ...42]]
I want to group by on id and date and do sum on cols WITHOUT USING PANDAS
RESULT = [[1,date1, 11,30 ...56],
[2,date2, 24,16...31],
[2,date3, 10,20 ...20],
[2,date4, 10,20 ...42]]
You can do it like this:
from itertools import groupby
list_OfRows.sort(key=lambda x: x[:2])
res = []
for k, g in groupby(list_OfRows, key=lambda x: x[:2]):
res.append(k + list(map(sum, zip(*[c[2:] for c in g]))))
which produces:
[[1, 'date1', 11, 30, 56],
[2, 'date2', 24, 16, 31],
[2, 'date3', 10, 56, 20],
[2, 'date4', 10, 20, 42]]