如何删除这个嵌套的 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)
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)