我从输入数据开始
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”)求和,或者如果有零,则恰好是“非”。
答案 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))