我从输入数据开始

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”)求和,或者如果有零,则恰好是“非”。

最佳答案

谢谢,建议的答案是

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

关于python - Pandas :添加列以进行透视和过滤,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53883623/

10-10 09:37