2013-04-13 10 views
16

私はこのように見える2つのデータフレームを持っている:python/pandas:2つのデータフレームを階層型列インデックスで1つに結合する方法は?

>>> df1 
       A B 
2000-01-01 1.4 1.4 
2000-01-02 1.7 -1.9 
2000-01-03 -0.2 -0.8 

>>> df2 
       A B 
2000-01-01 0.6 -0.3 
2000-01-02 -0.4 0.6 
2000-01-03 1.1 -1.0 

どのように私は以下のような階層的な列インデックスを持つこの2のうち1つのデータフレームを作ることができますか?

  df1  df2 
       A B A B 
2000-01-01 1.4 1.4 0.6 -0.3 
2000-01-02 1.7 -1.9 -0.4 0.6 
2000-01-03 -0.2 -0.8 1.1 -1.0 
+2

http://pandas.pydata.org/pandas-docs/dev/merging.html#more-concatenating-with-group-keys、ちょうどconcatにあなたの鍵の一部を渡す – Jeff

答えて

15

これは、ドキュメントの例である:http://pandas.pydata.org/pandas-docs/stable/merging.html#more-concatenating-with-group-keys

In [9]: df1 = pd.DataFrame(np.random.randn(3,2),columns=list('AB'),index=pd.date_range('20000101',periods=3)) 

In [10]: df2 = pd.DataFrame(np.random.randn(3,2),columns=list('AB'),index=pd.date_range('20000101',periods=3)) 

In [11]: df1 
Out[11]: 
        A   B 
2000-01-01 0.129994 1.189608 
2000-01-02 -1.126812 1.087617 
2000-01-03 -0.930070 0.253098 

In [12]: df2 
Out[12]: 
        A   B 
2000-01-01 0.535700 -0.769533 
2000-01-02 -1.698531 -0.456667 
2000-01-03 0.451622 -1.500175 

In [13]: pd.concat(dict(df1 = df1, df2 = df2),axis=1) 
Out[13]: 
       df1     df2   
        A   B   A   B 
2000-01-01 0.129994 1.189608 0.535700 -0.769533 
2000-01-02 -1.126812 1.087617 -1.698531 -0.456667 
2000-01-03 -0.930070 0.253098 0.451622 -1.500175 
+0

これは非常にいいです:) –

+0

ドキュメントのおいしいすべての種類! – Jeff

関連する問題