2017-08-04 3 views
1

ことにより、2つのデータフレームを組み合わせて、別のDF2です:Pythonのパンダ:次のように1がDF1で、2 dateframesがあり、日付インデックスと共通の列値

DF1:

   a b id 
2010-01-01  1 4 21 
2010-01-01  2 5 22 
2010-01-01  3 6 23 
2010-01-01  4 7 24 
2010-01-02  1 4 21 
2010-01-02  2 5 22 
2010-01-02  3 6 23 
2010-01-02  4 7 24 
2010-01-03  1 4 21 
2010-01-03  2 5 22 
2010-01-03  3 6 23 
2010-01-03  4 7 24 
........................... 

がDF2:

   c d id 
2010-01-02  1 4 21 
2010-01-02  2 5 22 
2010-01-02  3 6 23 
2010-01-02  4 7 24 
2010-01-03  1 4 21 
2010-01-03  2 5 22 
2010-01-03  3 6 23 
2010-01-03  4 7 24 
........................... 

一般的なインデックス(df1の一部のインデックスがdf2にないことに注意してください)とidによって2つのデータフレームをマージまたは結合したい場合、次のように結合データフレームが必要です。

   c d a b id 
2010-01-02  1 4 1 4 21 
2010-01-02  2 5 2 5 22 
2010-01-02  3 6 3 6 23 
2010-01-02  4 7 4 7 24 
2010-01-03  1 4 1 4 21 
2010-01-03  2 5 2 5 22 
2010-01-03  3 6 3 6 23 
2010-01-03  4 7 4 7 24 

私は、次のコード

df = df1.join(df2, on = ['id'], how='inner') 

を使用しますが、それは

答えて

2

IIUC動作しませんでした:あなたの親切な答えを

In [388]: df2.set_index('id', append=True).join(df1.set_index('id', append=True)) \ 
      .reset_index(level='id') 
Out[388]: 
      id c d a b 
2010-01-02 21 1 4 1 4 
2010-01-02 22 2 5 2 5 
2010-01-02 23 3 6 3 6 
2010-01-02 24 4 7 4 7 
2010-01-03 21 1 4 1 4 
2010-01-03 22 2 5 2 5 
2010-01-03 23 3 6 3 6 
2010-01-03 24 4 7 4 7 
+0

おかげで – tktktk0711

関連する問題