两个数据框之间的Vlookup,其中公共列的值重复

时间:2020-10-07 04:35:47

标签: python merge copy vlookup

我正在尝试在两个数据帧(df1,df2)之间执行vlookup,两个dfs中都存在“列”。 问题在于,在df1中,我应该携带值,“字符串”列中有重复项,因此我需要将其保存在其中,因此不想或不需要删除它们,但是对于所有它们,我都必须携带值来自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

有没有办法做到这一点? 提前谢谢

1 个答案:

答案 0 :(得分:1)

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'))