1. ホーム
  2. python

[解決済み] pandasでインデックス上のデータフレームをマージする

2022-03-03 22:03:41

質問

2つのデータフレームがあり、それぞれ2つのインデックスカラムを持っています。それらをマージしたいのですが、どうすればよいでしょうか?例えば、最初のデータフレームは次のようなものです。

                   V1

A      1/1/2012    12
       2/1/2012    14
B      1/1/2012    15
       2/1/2012    8
C      1/1/2012    17
       2/1/2012    9

2つ目のデータフレームは以下の通りです。

                   V2

A      1/1/2012    15
       3/1/2012    21             
B      1/1/2012    24
       2/1/2012    9
D      1/1/2012    7
       2/1/2012    16

で、その結果、次のようにしたいのです。

                   V1   V2

A      1/1/2012    12   15
       2/1/2012    14   N/A
       3/1/2012    N/A  21           
B      1/1/2012    15   24
       2/1/2012    8    9
C      1/1/2012    7    N/A
       2/1/2012    16   N/A
D      1/1/2012    N/A  7
       2/1/2012    N/A  16

を使っていくつかのバージョンを試してみました。 pd.merge.join というメソッドがありますが、何も動作しないようです。何かいい方法はないでしょうか?

解決方法は?

を使用できるようにする必要があります。 join これは、デフォルトでインデックスに結合します。 希望の結果を得るには outer を結合型として使用します。

>>> df1.join(df2, how='outer')
            V1  V2
A 1/1/2012  12  15
  2/1/2012  14 NaN
  3/1/2012 NaN  21
B 1/1/2012  15  24
  2/1/2012   8   9
C 1/1/2012  17 NaN
  2/1/2012   9 NaN
D 1/1/2012 NaN   7
  2/1/2012 NaN  16

シグネチャー _.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)です。 Docstring 他のDataFrameとインデックスまたはキーで結合する。 カラムを使用します。複数のDataFrameオブジェクトをインデックスで一度に結合することで、効率的に リストを渡します。