题
我正在研究一个看起来像这样的枢轴表:
Style Site AVS End Qty. \
JP SIZE 116 120 140 ADULTS L M O OSFA S XL
0 50935801 2664 0 0 0 0 0 0 0 0 0 0 3
1 50935801 2807 0 0 0 0 0 0 0 0 0 0 3
2 50935801 2832 0 0 0 0 0 0 0 0 0 0 3
3 50935802 2702 1 0 0 0 0 0 1 0 0 0 0
4 50985101 2849 0 0 0 0 0 0 3 0 0 0 0
Sales Qty.
JP SIZE Total 116 120 140 ADULTS L M
0 3 0 0 0 0 0 0 ...
1 3 0 0 0 0 0 0 ...
2 3 0 0 0 0 0 0 ...
3 1 0 0 0 0 0 -1 ...
4 3 0 0 0 0 0 0 ...
.
,我希望只有一个矢量标题矢量,将是[风格,站点,AVS,116,120,...,总,销售数量。]
但是“销售数量”。列,而不是目前我想要的总列的表(我可以用JJ ['销售数量'] ['总'],所以我想我猜我可以在另一个中保存它变量,删除它并在最后添加它)
到目前为止我尝试过的所有东西都失败了,我认为这是因为我不太了解多样化的工作。
提前感谢您可以提供的任何帮助!
解决方案
可能存在更聪明的内置,但是一种方式是使用MultiDINX作为元组列表,并根据所描述的新列名称。
def custom_rename(lvl1, lvl2):
if lvl1 == 'End Qty.':
return lvl2
elif lvl1 == 'Sales Qty.' and lvl2 == 'Total':
return 'Sales Qty.'
elif lvl2 == '':
return lvl1
else:
return '_'
.
然后应用于列并分配:
df.columns = [custom_rename(lvl1, lvl2) for lvl1, lvl2 in df.columns]
.
'_'
使用不再需要的列的标记,因此最后一步将删除那些。
df = df.drop('_', axis=1)
. 不隶属于 StackOverflow