Python 如何仅在第一个数据帧的行与另一个数据帧相等时合并数据帧?

Python 如何仅在第一个数据帧的行与另一个数据帧相等时合并数据帧?,python,python-3.x,pandas,dataframe,merge,Python,Python 3.x,Pandas,Dataframe,Merge,我只是试图在“Número da conta”列中的data_final的行值等于第一个df的同一列名中的行时才输入base_consolidada df data。但是,这花费的时间太长,我不知道如何解决它 for _,row in base_consolidada.iterrows(): for _,row2 in data_final.iterrows(): if row["Número da conta"]==row2["Número da cont

我只是试图在“Número da conta”列中的data_final的行值等于第一个df的同一列名中的行时才输入base_consolidada df data。但是,这花费的时间太长,我不知道如何解决它

for _,row in base_consolidada.iterrows():
for _,row2 in data_final.iterrows():
    if row["Número da conta"]==row2["Número da conta"]:
        row[["Investimento(DF)","Saldo Líquido(DF)","%Rend(DF)"]]=row2[["Investimento","Saldo Líquido","% Rend"]]

你的问题很模糊,没有一个例子。我想您是在寻找连接而不是合并。请尝试以下代码:

df_1 = base_consolidada.["Investimento(DF)","Saldo Líquido(DF)","%Rend(DF)"]
df_2 = data_final["Investimento(DF)","Saldo Líquido(DF)","%Rend(DF)"]

if base_consolidada["Número da conta"].equals(data_final["Número da conta"]):
    pd.concat([df_1, df_2])

你的两个数据帧有多大?这里将进行len(df1)*len(df2)比较,因为您正在将base_consalidada individuall中的每一行与data_final中的每一行进行比较。假设numero de conta表示帐号,并且每行都有一个唯一的帐号,您最好在每个数据帧中创建一组帐号,然后创建两组帐号的交集,然后只在该交叉点中查找账号,并对其进行操作如果你有一个示例数据集可以使用,这将使使用一些示例代码更容易。好的,首先,谢谢,我将尝试澄清我想要在base_consolidada df中做什么,我有4个列,名为“Número da conta”,“investmento(df)”,“萨尔多·利奎多(DF)”,%Rend(DF)