熊猫:合并两个具有相同值的不同键

时间:2020-07-29 17:07:32

标签: python pandas

我下面有两个数据框:

dfA = pd.DataFrame([[3,"here",34]],columns = ["comp_id","mail","mean"])
dfB = pd.DataFrame([[23,3,"there"]], columns = ["alt","name_id","serv"])

dfA

        comp_id  mail  mean
   0          3 "here"   34

dfB

          alt  name_id   serv
   0       23        3  "there"

我想在comp_id = name_id上​​加入两个数据框

输出:

        mail  mean   alt     serv
 0     "here"   34    23   "there"

输出不应包含comp_id或name_id。

关于如何执行此操作的任何建议?

3 个答案:

答案 0 :(得分:1)

mergeleft_onright_on一起使用:

pd.merge(dfA,dfB,left_on="comp_id", right_on = "name_id", how="inner")

答案 1 :(得分:1)

在为第一个数据帧设置索引并从第二个数据帧删除列之后使用合并

dfA = dfA.set_index('comp_id')
res = dfA.merge(dfB,left_index=True,right_on='name_id').drop('name_id',axis=1)
print(res)

答案 2 :(得分:1)

在合并后将您的联接键拖放:

dfA.merge(dfB, left_on='comp_id', right_on='name_id').drop(['comp_id','name_id'], axis=1)

输出:

   mail  mean  alt   serv
0  here    34   23  there