2016-05-04 38 views
1

パンダの新しいので、私と一緒に裸をしてください。 次の2つのデータフレームをマージしようとしています。パンダ:2つのデータフレームをマージする

df.head():

 x  y  z w 
0 0.0056 11 824 51 
1 0.0056 138 546 16 
2 0.0056 328 1264 40 
3 0.0056 1212 553 91 
4 0.0056 1839 388 48 

df1.head():以下のコマンドを使用して

  x  y  z 
0 5539.0567 12243 27 
1 5873.2923 14474 1540 
2 3975.9776 11353 699 
3 1508.5975 8250 628 
4 66.7913 11812 538 

df1 = df1.merge(df, how='left',left_on=(['x','y','z']),right_index=True) 

を、次のエラーは、最大作物:

ValueError: len(left_on) must equal the number of levels in the index of "right"

合計dfには11458060行があり、df1には2528243行があります。

これは実際にはわかりません。誰かが私が間違っているかもしれないことを教えてもらえますか?

print df1.merge(df, how='left', on=['x','y','z']) 

Docs

+0

、あなたもright_onを示すために持っています。これは、2つのデータフレームの列に同じ名前がない場合にのみ有効です。さもなければon = somethingを使うだけです。 – ysearka

答えて

2

は、私はあなたが列xyzmergeが必要だと思います。 mergeで上

パラメータ:あなたは、マージでleft_on =何かを示している場合

​​
+0

ありがとう!それはうまくいった! – user324

+1

私の答えが役に立ったら、[同意する](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を忘れないようにしてください。ありがとう。 – jezrael

関連する問題