Эта функция суммирует строки в фрейме данных на основе 5 различных критериев (начальная дата, конечная дата, фонд, счет и анализ):
df = pd.DataFrame(
[
['02-09-2019',20190902, 20.00, 'F1','B1','I2'],
['23-09-2019',20190923, 237.36, 'F1','B1','I1'],
['15-11-2019',20191115, 200.00, 'F1','B1','I1'],
['16-11-2019',20191116, 2045.00, 'F1','B1','I2'],
['05-05-2020',20200505, 205.00, 'F2','B2','I1'],
],
columns= ['Datestr','Datenum','Cost','Fund','Account','Analysis'])
def per_sum(startdate, enddate, fund, account, analysis):
return df[(df.Datenum > startdate) &
(df.Datenum < enddate) &
(df.Fund == fund) &
(df.Account == account) &
(df.Analysis == analysis)
].Cost.sum()
per_sum(20190000,20200000,'F1','B1','I1')
Как я могу адаптировать эту функцию, чтобы продолжить к общей стоимости, если данные фонда, счета или анализа не предоставляются.
Например: если я хотел найти общий анализ «I2» (во всех фондах и счетах).
Подобные вещи не работают:
per_sum(20190000,20200000,'','','I2')
Спасибо