Вы можете умножить на mul
извлеченный столбец, сначала pop
, затем sum
строк для Series
, rename
для заглавных названий месяцев, добавить reindex
для правильного порядка, rename_axis
для имени столбца nw с reset_index
:
cats = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL',
'AUG', 'SEP', 'OCT', 'NOV', 'DEC']
df1 = (df.mul(df.pop('Total Sales'), axis=0)
.sum()
.rename(str.upper)
.reindex(cats)
.rename_axis('Month')
.reset_index(name='Sales'))
print (df1)
Month Sales
0 JAN 0.000000e+00
1 FEB 2.144299e+07
2 MAR 4.917457e+06
3 APR 0.000000e+00
4 MAY 0.000000e+00
5 JUN 0.000000e+00
6 JUL 0.000000e+00
7 AUG 0.000000e+00
8 SEP 0.000000e+00
9 OCT 0.000000e+00
10 NOV 0.000000e+00
11 DEC 0.000000e+00