두 개의 DataFrame이 있다고 가정합니다.
left = pd.DataFrame({'key1': ['foo', 'bar'], 'lval': [1, 2]})
right = pd.DataFrame({'key2': ['foo', 'bar'], 'rval': [4, 5]})
그것들을 병합하고 싶기 때문에 다음과 같이 시도하십시오.
pd.merge(left, right, left_on='key1', right_on='key2')
그리고 나는 행복하다
key1 lval key2 rval
0 foo 1 foo 4
1 bar 2 bar 5
그러나 나는 조인 방법을 사용하려고 노력하고 있습니다.
left.join(right, on=['key1', 'key2'])
그리고 나는 이것을 얻는다 :
//anaconda/lib/python2.7/site-packages/pandas/tools/merge.pyc in _validate_specification(self)
406 if self.right_index:
407 if not ((len(self.left_on) == self.right.index.nlevels)):
--> 408 raise AssertionError()
409 self.right_on = [None] * n
410 elif self.right_on is not None:
AssertionError:
내가 무엇을 놓치고 있습니까?
on
옵션으로 지정)를의 색인과 일치 시키려고 other
합니다. 조인을위한 인덱스를 기억하십시오. merge ()는 더 일반적인 방법입니다.
merge
의 열을 조인left
의 열을right
당신이 원하는 어떤을,하지만join(... on=[...])
의 열을 조인left
의 인덱스 키에right
당신이 원하는 바가 아니다. 자세한 내용은 아래 답변을 참조하십시오.