Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何向多个列添加名称?_Python_Pandas_Multi Index - Fatal编程技术网

Python 如何向多个列添加名称?

Python 如何向多个列添加名称?,python,pandas,multi-index,Python,Pandas,Multi Index,我想为以下数据框的“季节1”和“季节2”列指定一个名称(如John): Season_1 Season_2 Wins 151 120 Losses 124 110 所以它应该是这样的: John Season_1 Season_2 Wins 151 120 Losses 124 110 这可能可以通过多索引来

我想为以下数据框的“季节1”和“季节2”列指定一个名称(如John):

             Season_1  Season_2
Wins         151       120
Losses       124       110
所以它应该是这样的:

             John
             Season_1  Season_2
Wins         151       120
Losses       124       110
这可能可以通过多索引来解决。然而,我似乎无法发现当已经存在一个数据帧时,它是如何工作的

我使用以下代码创建了此数据框:

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'])
稍后,我将组合几个数据帧,以便得到类似的结果。我将使用pandas.merge()实现这一点:

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

您需要添加一个列级别

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

        John
        Season_1    Season_2
Wins    151         120
Losses  124         110
跟进问题1:第一季的“约翰”和第二季的“亚当”

df.columns = pd.MultiIndex.from_tuples([('John', 'Season_1'), ('Adam', 'Season_2')]) 
跟进问题2:5列(“A”、“B”、“C”、“D”、“E”),并将“一级”分配给“A”、“B”、“C”,将“二级”分配给“D”、“E”


谢谢!如果你想在第1季用“约翰”和第2季用“亚当”怎么办?你可以试试df.columns=pd.MultiIndex。从元组([(“约翰”,“第1季”),(“亚当”,“第2季”))这很有效,谢谢。还有一个问题:如果我有5列(“A”,“B”,“C”,“D”,“E”),我想把级别“一”分配给“A”,“B”,“C”,把级别“二”分配给“D”怎么办?”在这种情况下,我会使用df.columns=pd.MultiIndex.from_tuples([('One','A'),('One','B'),('One','C'),('Two','D'),('Two','E'))在这种情况下,我会使用df.columns=pd.MultiIndex.from_tuples([('One','A'),('One','B'),'C'),('One','Two','D'),('Two','E'))在这种情况下,还有一个后续问题(基于2.问题):如果我有一个列表['A'.我如何才能将第一个列表分配到级别“1”,将第二个列表分配到级别“2”?from_tuples工作得很好,但将级别名称写5次很烦人。。
df.columns = pd.MultiIndex.from_tuples([('One', 'A'),('One', 'B'),('One', 'C'), ('Two', 'D'),('Two', 'E')])