熊猫:添加列以进行透视和过滤

时间:2018-12-21 10:59:35

标签: python pivot pandas-groupby

我从输入数据开始

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

等,大约37,000行。我需要一个仅使用'Selected'='Before'的行的数据透视表,其中列标签='mid',行标签='outid',值的总和-'Target_vol'的总和。我在Python中使用代码:

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

问题是如何添加过滤器,例如'Selected'='Before'(或'After',或无空格)。然后,我需要插入一列“目标销售量”,在其中我可以按每个“中间”对销售量(“ Target_vol”)求和,或者如果有零,则恰好是“非”。

1 个答案:

答案 0 :(得分:0)

谢谢,建议的答案是

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))