สมมติว่าฉันมี DataFrames สองตัวดังนี้:
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รวมคอลัมน์ของleftไปยังคอลัมน์ของrightซึ่งเป็นสิ่งที่คุณต้องการ แต่join(... on=[...])รวมคอลัมน์ของleftไปยังคีย์ดัชนีของrightซึ่งไม่ใช่สิ่งที่คุณต้องการ ดูคำตอบของฉันด้านล่างสำหรับรายละเอียดเพิ่มเติม