2016-04-28 4 views
1

2つのデータフレームを2つのインデックス(idまたはdescとyear)でマージするのに助けが必要です。私はresult = pd.concat([df1、s1]、axis = 1、ignore_index = True)を試みましたが、それを動作させることはできません。Python Dataframeが1つ以上のインデックスとマージする

df1: 
     id desc year value1 
0  1 var1 2000  10 
1  1 var1 2001  15 
2  1 var1 2002  952 
3  2 var2 2000  85 
4  2 var2 2001  16 
5  2 var2 2002  12 
6  3 var3 2000  112 
7  3 var3 2001  89 

df2: 
     id desc year value2 
0  1 var1 2000  44 
1  1 var1 2001  33 
2  1 var1 2002  22 
3  2 var2 2000  11 
... 

To: 
     id desc year value1 value2 
0  1 var1 2000  10  44 
1  1 var1 2001  15  33 
2  1 var1 2002  952  22 
3  2 var2 2000  85  11 

インデックスはidまたはdescで、yearはデータフレームに新しい値2をマージ/追加します。何か案は?

+0

あなたは=「左か '、必要に応じて' df1.merge(=上DF2、[ 'ID'、 'DESC'、 '年'])を使用し 'とすることができます'|' right '|' outer'' – MaxU

答えて

0

on=['col1','col2','col3']を使用して、.merge()を試してみてください。

In [24]: df1.merge(df2, on=['id','desc','year']) 
Out[24]: 
    id desc year value1 value2 
0 1 var1 2000  10  44 
1 1 var1 2001  15  33 
2 1 var1 2002  952  22 
3 2 var2 2000  85  11 
+0

ありがとうございました!私はいつもdf1 = df1.merと書くのを忘れました。 – Marco

関連する問題