我可以通过merge
看到我尝试做的事情:Merge dataframes on index
为什么我不能使用import pandas as pd
df = pd.DataFrame({'name':['joe strummer','johnny rotten'],'age':[73,80]})
df2 = pd.DataFrame({'name':['nancy','sid'],'age':[17,19]})
df.index.name = 'x'
df2.index.name = 'y'
pd.merge(df2,df, left_on='y',right_on='x')
执行相同的操作?
Y
答案 0 :(得分:1)
这是可能的;只需使用update referent set genderReferent='',phoneReferent='',faxReferent='',adressReferent='38, boulevard de l'Ayrolles - B.P. 145',supportOrganization='',zipCode='',cityReferent='',countryReferent='' where oldReferentId=5077
代替left_index=True
,left_on
代替right_index=True
:
right_on
使用>>> pd.merge(df, df2, left_index=True, right_index=True)
age_x name_x age_y name_y
0 73 joe strummer 17 nancy
1 80 johnny rotten 19 sid
不起作用,因为索引是DataFrame列的单独对象。索引可以具有名称,甚至可以与您的某个列具有相同的名称,但left_on
将不会看到它,因为它只查看列名称。
documentation for merge为这些论点提供了以下指导:
left_index :布尔值,默认为F
使用左侧DataFrame中的索引作为连接键。如果是MultiIndex,则其他DataFrame中的键数(索引或列数)必须与级别数匹配