按列值pandas加入数据帧

时间:2016-09-26 12:42:26

标签: python pandas dataframe merge inner-join

我有两个数据框df1df2来自不同的数据库。数据框中的每个项目都由id标识。

df1 = pd.DataFrame({'id':[10,20,30,50,100,110],'cost':[100,0,300,570,400,140]})

df2 = pd.DataFrame({'id':[10,23,30,58,100,110],'name':['a','b','j','d','k','g']})

两个数据帧中都有一些常见的产品,在这种情况下,这些产品的ID为10,30,100,110。 我想将这些信息合并到一个数据帧中,如下所示:

df3 = pd.DataFrame({'id':[10,30,100,110],'name':['a','j','k','g'],'cost':[100,300,400,140]})

我试图用字典和嵌套循环来做这件事,但是我处理了相当大量的数据而且只需要很长时间就可以这样做。

1 个答案:

答案 0 :(得分:2)

我认为您可以使用merge,省略默认参数how='inner'

print (pd.merge(df1,df2,on='id'))
   cost   id name
0   100   10    a
1   300   30    j
2   400  100    k
3   140  110    g