如何在多个列中添加名称?

时间:2019-01-18 21:29:44

标签: python pandas multi-index

我想为以下DataFrame的“ Season_1”和“ Season_2”列分配一个名称(如John):

             Season_1  Season_2
Wins         151       120
Losses       124       110

看起来应该像这样:

             John
             Season_1  Season_2
Wins         151       120
Losses       124       110

这可能可以通过MultiIndex解决。但是,当已经存在一个DataFrame时,我似乎无法发现它是如何工作的。

我已使用以下代码创建了此DataFrame:

wins = {'Wins': (151, 120)}

losses = {'Losses': (124, 110)}

dict_all = {**wins, **losses}
df = pd.DataFrame.from_dict(dict_all, orient='index', columns=['Season_1', 'Season_2'])

稍后,我想合并几个DataFrame,以便获得类似的信息。我会使用pandas.merge():

             John                Adam
             Season_1  Season_2  Season_1  Season_2
Wins         151       120       111       110
Losses       124       110       102       110

1 个答案:

答案 0 :(得分:3)

您需要添加列级别

df.columns = pd.MultiIndex.from_product([['John'], df.columns])

        John
        Season_1    Season_2
Wins    151         120
Losses  124         110

后续问题1:第1季为“约翰”,第2季为“亚当”

df.columns = pd.MultiIndex.from_tuples([('John', 'Season_1'), ('Adam', 'Season_2')]) 

后续问题2:5列(“ A”,“ B”,“ C”,“ D”,“ E”)并将级别“ One”分配给“ A”,“ B”,“ C”以及级别“ Two”到“ D”,“ E”。

df.columns = pd.MultiIndex.from_tuples([('One', 'A'),('One', 'B'),('One', 'C'), ('Two', 'D'),('Two', 'E')]) 
相关问题