如何删除这个嵌套的 for 循环,这需要太多时间

How I can remove this nested for loops, it take too much time

for i,row_1 in df_1.iterrows():
   for j, row_2 in df_2.iterrows():
      if row_1['RECKEY'] == row_2['RECKEY']:
         df_1.loc[i ,'RECKEY'] = df_2.loc[j ,'RECKEY_NEW']

我如何构建执行此操作的过滤器?

我尝试了以下但没有成功。

df_1.loc[df_1.RECKEY.isin(df_2.RECKEY), 'RECKEY'] = df_2.loc['RECKEY_NEW']

输出:

Index: [])
'RECKEY_NEW'

生成数据框的基本结构,有助于更好地解决问题。这!有效!

df_1.loc[df_1["RECKEY"]==df_2["RECKEY"],'RECKEY']=df_2["RECKEY"]

你应该使用合并,它会解决你的问题。

new_df = df_1.merge(df_2[['RECKEY_NEW','RECKEY']], left_on='RECKEY', 
right_on='RECKEY')
new_df['RECKEY'] = new_df['RECKEY_NEW'].astype(int)