两个具有公共列重复值的数据帧之间的 Vlookup

Vlookup between two dataframes with duplicate values for the common column

我正在尝试在两个数据帧(df1、df2)之间执行 vlookup,两个 dfs 中存在的列是 'string'。 问题是在 df1 中,我应该把值带到哪里,'string' 列有重复项,我需要把它们放在那里,所以不想或不需要删除它们,但对于所有这些我都必须带来自 df2 的值。

我的 dfs 是这样的

df1                                   df2                     expected result(keep df1)

string   col2                      `string        random          string         col2       
A                                      A         something         A             something
A                                      B         something         A             something
A                                      C         something         A             something
B                                                                  B             something
B                                                                  B             something
B                                                                  B             something
C                                                                  C             something
C                                                                  C             something
C                                                                  C             something

有办法吗? 非常感谢

df1 = pd.DataFrame([
['A', '-'],['A', '-'],['A', '-'],
['B', '-'],['B', '-'],['B', '-'],
['C', '-'],['C', '-'],['C', '-'],
], columns=['string', 'col2'])

df2 = pd.DataFrame([
['A', 'something'],
['B', 'something1'],
['C', 'something3'],
], columns=['string', 'random'])

print(df1, '\n\n',df2)
result_df = df1.set_index('string').join(df2.set_index('string'))