如何用更有效的东西替换两个for循环(两个数据框)



我有两个具有一个共享列的数据框。我试图根据该列将四个列从一个数据框分配到另一个数据框(它们还不存在)。运行大约需要45分钟。有更好的方法吗?

df_1['a'] = ''
df_1['b'] = ''
df_1['c'] = ''
df_1['d'] = ''

for i in range(len(df_1)):
for j in range(len(df_2)):
if df_1.loc[i, 'common_col'] == df_2.loc[j, 'common_col']:
df_1.loc[i, 'a'] = df_2.loc[j, 'a']
df_1.loc[i, 'b'] = df_2.loc[j, 'b']
df_1.loc[i, 'c'] = df_2.loc[j, 'c']
df_1.loc[i, 'd'] = df_2.loc[j, 'd']

如果我没理解错的话,你是想把.merge数据帧放在一起。

如果你有df1:

c1  c2  common_col
0   1   2           1
1   3   4           2
2   5   6           3

df2:

a  b  c  common_col
0  1  2  3           1
1  3  4  5           3

:

df_out = df1.merge(df2, on="common_col", how="left")
print(df_out)

打印:

c1  c2  common_col    a    b    c
0   1   2           1  1.0  2.0  3.0
1   3   4           2  NaN  NaN  NaN
2   5   6           3  3.0  4.0  5.0

相关内容

  • 没有找到相关文章

最新更新