首页 > 解决方案 > 是否可以在 Pandas 中不创建第三个数据框的情况下执行合并(vlookup)?

问题描述

使用 +450K 行 x 90 col 数据框时,我需要执行几个 pd.merge(Excel 的“vlookup”)命令。

与现有解决方案相比,我认为每次合并具有上述维度的新数据框效率不高。

如何在 df1 内的新列上将 df1 与 df2 合并?

到目前为止,我的方法是将合并指向 df1 中的一个新列。没有成功。

import pandas as pd

df1=pd.DataFrame({'Campo':['C1','C2','C3'],'Plataformas':['C1-A','C2-A','C3-A']})

df2=pd.DataFrame({'Plataformas':['C1-A','C2-A','C3-A'],'Pozos':[5,10,15]})

df3=df1.merge(df2,on='Plataformas')   #This works for the df3 

t1['Num Pozos']=t1.merge(t2,on='Plataformas')  #This didn't worked

DF1
Campo   Plataformas
C1  C1-A
C2  C2-A
C3  C3-A

DF2
Plataformas Pozos
C1-A            5
C2-A            10
C3-A            15

New DF1 (Expected)
Campo   Plataformas Pozos
C1  C1-A             5
C2  C2-A             10
C3  C3-A             15

为了避免 df3 我试过:

df1['Num Pozos']=df1.merge(df2,on='Plataformas')

输出错误是:

ValueError:传递的项目数错误 4,位置暗示 1

任何帮助表示赞赏。

---针对@coldspeed的编辑问题---在我看来,类似问题之间的区别是因为其他答案意味着创建一个新的数据框,这在我的情况下是不必要的。

标签: pandasdataframe

解决方案


推荐阅读