【发布时间】:2014-07-02 14:53:12
【问题描述】:
pandas.merge 对左右两边的行为不同!!!对于左侧,如果我们同时使用 left_on 和 left_index 会显示错误,但右侧也一样!!!
代码:
import pandas as pd
import numpy as np
right = pd.DataFrame(data=np.arange(12).reshape((6,2)),index=[['Nevada', 'Nevada', 'Ohio', 'Ohio', 'Ohio', 'Ohio'],[2001, 2000, 2000, 2000, 2001, 2002]],columns=['event1','event2'])
left = pd.DataFrame(data={'key1':['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada'],'key2':[2000, 2001, 2002, 2001, 2002],'data':np.arange(5.)})
pd.merge(left,right,right_index=True,left_index=True,right_on='event1')#it works and returns an empty table which is expected
pd.merge(left,right,left_index=True,right_index=True,left_on='key1')# it makes error !!!
【问题讨论】:
-
我没有看到您要合并的数据。第一次合并有效,但不包含任何合并数据...
-
问候,谢谢你的回复,我的问题是第二个"pd.merge(left,right,left_index=True,right_index=True,left_on='key1')" 它抛出错误我只想知道为什么它不会发生在第一个(pd.merge(left,right,right_index=True,left_index=True,right_on='event1'))