У меня есть 2 DataFrames, один из которых является месячным итогом, а другой содержит значения, на которые я хочу разделить первое, чтобы получать ежемесячные процентные взносы.
Вот несколько примеров DataFrames:
MonthlyTotals = pd.DataFrame(data={'Month':[1,2,3],'Value':[100,200,300]})
Data = pd.DataFrame(data={'ID':[1,2,3,1,2,3,1,2,3],
'Month':[1,1,1,2,2,2,3,3,3],
'Value':[40,30,30,60,70,70,150,60,90]})
Я использую df.div()
, поэтому я устанавливаю индекс следующим образом
MonthlyTotals.set_index('Month', inplace=True)
Data.set_index('Month', inplace=True)
Затем делаю
Contributions = Data.div(MonthlyTotals, axis='index')
Полученный DataFrame - это то, что я хочу, но я не может видеть ID
, к которому относится Value
, поскольку его нет в кадре MonthlyTotals
. Как бы я использовал df.div()
, но только выборочно для определенных столбцов?
Вот примерный кадр данных результата, который я ищу
result = pd.DataFrame(data={'ID':[1,2,3,1,2,3,1,2,3],'Value':[0.4,0.3,0.3,0.3,0.35,0.35,0.5,0.2,0.3]})