根据df1- Pandas Dataframes中的列合并三个数据帧

时间:2017-02-01 16:38:30

标签: python pandas join dataframe merge

我希望合并3个拥有共同“ORG_ID”列的数据帧。 df1是我的原始数据帧,其org_id计数为154.我想将df1与df2和df3合并,以获得df1中每个org id的评级,并且无法弄清楚如何执行此操作。

我设法合并了df1和df2,但是得到的新计数为84 org_ids而不是154,因为在df2中找不到70个org_ids,但可以在df3中找到。我无法弄清楚如何合并所有3个数据帧,以获得df1中所有154个org_ids的评级。有任何想法吗?请记住,数据帧的大小各不相同,但我希望在df1中找到所有154个原始Org_ids的等级。

Here was my code to merge df1 and df2 :
df4=pd.merge(df1, df2, left_on = 'ORG_ID', right_on = 'ORG_ID')

Here is a sample of what the dataframes look like:

df1: 
Org_id   Name   
123      House 1     
457      House 3     
876      House 16      
567      House 56     

df2:
Org_id   Name       Rating
123      House 1    10   
457      House 3    5    
857      House 87   6    

df3:
Org_id   Name       Rating1   org_type        location     area
123      House 1    10        single family   Hamilton     Suburban 
567      House 56   9         single family   Middletown   Suburban

1 个答案:

答案 0 :(得分:1)

df4 = df1.merge(df2, on='ORG_ID', how='left')
df5 = df4.merge(df3, on='ORG_ID', how='left')

df5