Вы могли бы сделать это pandas довольно легко
import pandas as pd
# read in the csv
# group by the date column, and sum the other columns
# reset index to get the dates as a series
# convert dataframe to dictionary
out = pd.read_csv('file.csv').groupby('date').sum().reset_index().to_dict('records')
#Out I
[{'date': '26-03-2020', 'marks': 2796, 'course1': 2157},
{'date': '27-03-2020', 'marks': 2212, 'course1': 1783}]
# Out II
# if you insist on having it as a dict of dicts
out = {k['date']: {'marks': k['marks'], 'course1': k['course1']} for k in out }
{
'26-03-2020': {'marks': 2796, 'course1': 2157},
'27-03-2020': {'marks': 2212, 'course1': 1783}
}
Дальнейшее объяснение для ясности
Невозможно иметь словарь так, как вы просите. Мой пример выше показывает, что дата является ключом к новому словарю. В вашем примере вы используете ,
вместо :
, что невозможно.