我想为以下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
答案 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')])