我正在处理多索引数据框,因为我使用了pd.pivot_table。我的列标题中有两个级别。
我目前正在处理它,并希望将两列相加。
我想通过使用.pipe()
处理一个链中的df来使代码更清晰我想出的是:
reg_cat =
1 or 0 total_orders year
0 1 2000 2011
1 0 5500 2012
2 1 6000 2013
3 0 1000 2014
4 0 3000 2015
pivot = (
reg_cat
.pivot_table(values=['total_orders'],index=['year'],columns=['1 or 0'], aggfunc=np.sum)
.reset_index()
.fillna(0)
.pipe(lambda x: x.assign(total_orders_total = x['total_orders',0] + x['total_orders',1]))
)
输出如下:
year total_orders total_orders total_orders_total
1 or 0 0 1
0 2011 0.0 2000.0 2000.0
1 2012 5500.0 0.0 5500.0
2 2013 0.0 6000.0 6000.0
3 2014 1000.0 0.0 1000.0
4 2015 3000.0 0.0 3000.0
如何为列添加第二级列名称" total_orders_total'用这种方法?所以它看起来像这样:
year total_orders total_orders total_orders_total
1 or 0 0 1 total
0 2011 0.0 2000.0 2000.0
1 2012 5500.0 0.0 5500.0
2 2013 0.0 6000.0 6000.0
3 2014 1000.0 0.0 1000.0
4 2015 3000.0 0.0 3000.0