Суммировать на основе двоичных значений - PullRequest
0 голосов
/ 11 ноября 2018

Как можно обобщить этот фрейм данных.

OCT NOV DEC JAN Feb Mar Apr May Jun Jul Aug Sep Total Sales
0   0   0   0   0   1   0   0   0   0   0   0   0   4825379.818
1   0   0   0   0   1   0   0   0   0   0   0   0   5522382.297
2   0   0   0   0   1   0   0   0   0   0   0   0   5721183.289
3   0   0   0   0   1   0   0   0   0   0   0   0   5374047.083
4   0   0   0   0   0   1   0   0   0   0   0   0   4917456.971

Я хочу, чтобы оно было в форме

Month    Sales
JAN    1235
FEB    5454
..     ..

..

1 Ответ

0 голосов
/ 11 ноября 2018

Вы можете умножить на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...