Панды: добавление столбца в сводку и фильтрация - PullRequest
0 голосов
/ 21 декабря 2018

Я начинаю с входных данных

mid      outid    Selected  Target_vol
201711  16942098  After      12
201712  16942102  After      14
20176   1389276   Before     16
20177   1389277   Before     0

и т. Д., Около 37 тыс. Строк.Мне нужен свод, который принимает только строки с 'Selected' = 'Before', где Column label = 'mid', label строк = 'outid', сумма значений - сумма 'Target_vol'.Я использую код в Python:

df.groupby(['outid', 'mid'])
[['Target_vol']].sum().reset_index().pivot(index='outid', columns='mid', 
values = 'Target_vol').reset_index()

Вопрос в том, как добавить фильтр, например, «Выбрано» = «До» (или «После», или без пробелов).Затем мне нужно вставить столбец «Целевые объемы продаж», где я могу суммировать продажи («Target_vol») по каждому «середине», или, если есть нули, просто справа «Non».

1 Ответ

0 голосов
/ 16 января 2019

Спасибо, предложенный ответ был

m = df[df.selected=='After']
new_df = pd.pivot_table(m, 'Target_vol', 'outid',  'mid',  aggfunc='sum')
new_df.assign(TargetVolumeSales = new_df.sum(axis=1))
...