我有两个具有一个共享列的数据框。我试图根据该列将四个列从一个数据框分配到另一个数据框(它们还不存在)。运行大约需要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