Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.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,我有一个数据框,它的列是一个具有级别的多索引 我有另一个数据帧,它的列是一个具有级别的多索引 我想以自然的方式合并这些多个索引,使之成为一个具有级别的索引 我尝试了大概100种方法,从连接、合并、设置_名称、设置_索引、连接和重命名级别以及提供键、名称和标签,我不知道我做错了什么。这似乎是一件很自然的事情。我知道一定有一个简单的方法可以做到这一点。我基本上是在索引树中添加一个分支。这实际上只是一个concat In [14]: arrays = [['bar', 'bar', 'baz',

我有一个数据框,它的列是一个具有级别的多索引

我有另一个数据帧,它的列是一个具有级别的多索引

我想以自然的方式合并这些多个索引,使之成为一个具有级别的索引


我尝试了大概100种方法,从连接、合并、设置_名称、设置_索引、连接和重命名级别以及提供键、名称和标签,我不知道我做错了什么。这似乎是一件很自然的事情。我知道一定有一个简单的方法可以做到这一点。我基本上是在索引树中添加一个分支。

这实际上只是一个concat

In [14]: arrays = [['bar', 'bar', 'baz', 'baz'],['one', 'two', 'one', 'two']]
In [15]: tuples = list(zip(*arrays))
In [16]: index1 = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])

In [17]: arrays = [['foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two']]
In [18]: tuples = list(zip(*arrays))
In [19]: index2 = pd.MultiIndex.from_tuples(tuples, names=['first', 'second'])

In [21]: df1 = pd.DataFrame(np.random.randn(4,4), columns=index1)
In [23]: df2 = pd.DataFrame(np.random.randn(4,4), columns=index2)

In [25]: pd.concat([df1, df2], axis=1)
Out[25]: 
first        bar                 baz                 foo                 qux  \
second       one       two       one       two       one       two       one   
0       0.192217 -1.392671  1.229953  0.558334 -0.908125  0.934284 -1.240591   
1       0.816492 -0.157933  0.058365 -1.115411 -0.488677  0.204860 -0.268372   
2      -0.160077 -1.825912  0.615397  0.570057 -0.699260 -0.552970  0.056875   
3       1.308078  0.018694  1.047227  1.047585  0.172404  0.861871  0.569599   

first             
second       two  
0      -2.234618  
1      -1.604534  
2       0.151859  
3       0.522803 

我意识到我的问题是我正在做的一个角落案例任务是改变其中一个数据帧上的列级别,这导致concat做了错误的事情。谢谢你简单明了的回答。