Python 如何合并数据透视表中的多索引层?

Python 如何合并数据透视表中的多索引层?,python,pandas,merge,pivot-table,multi-index,Python,Pandas,Merge,Pivot Table,Multi Index,假设我得到了球员在比赛中表现的数据框架,如下所示: 匹配阵营A和阵营B BG1联盟8 10 BG1联盟2 5 BG1部落5 25 BG2。。。 我想汇总每场比赛的球队统计数据A和B,换句话说,获得如下数据帧: 匹配联盟A联盟B部落A部落B BG1105525 BG2。。。 我知道我可以手动形成每个列,但我一直在寻找更优雅的方法来解决这个问题。所以,我试过这个: df.pivot_表(值=['A','B',index='Match',columns='派系',aggfunc=lambda x:

假设我得到了球员在比赛中表现的数据框架,如下所示:

匹配阵营A和阵营B
BG1联盟8 10
BG1联盟2 5
BG1部落5 25
BG2。。。
我想汇总每场比赛的球队统计数据A和B,换句话说,获得如下数据帧:

匹配联盟A联盟B部落A部落B
BG1105525
BG2。。。
我知道我可以手动形成每个列,但我一直在寻找更优雅的方法来解决这个问题。所以,我试过这个:

df.pivot_表(值=['A','B',index='Match',columns='派系',aggfunc=lambda x:x.sum())
这给了我以下信息:

ab
派系联盟部落联盟部落
匹配
BG11051525
BG2。。。
现在,有没有办法将这些多索引合并成“联盟A”、“部落A”、“联盟B”、“部落B”列?我唯一的想法就是申请

.T.重置索引().T

…这会删除多索引层,但是,它需要在之后手动重命名列。

这很容易,因为您已经完成了大部分工作:

# create a list of the new column names in the right order
new_cols=[('{1} {0}'.format(*tup)) for tup in pivoted.columns]

# assign it to the dataframe (assuming you named it pivoted
pivoted.columns= new_cols

# resort the index, so you get the columns in the order you specified
pivoted.sort_index(axis='columns')

谢谢,这正是我需要的不客气。顺便说一句,我只是更改了代码,因为连接有时会有问题。我想使用格式更安全。例如,如果列索引具有非字符串级别。格式应该自动处理这些问题。