在Python中跨数据框搜索和替换匹配值

时间:2018-06-20 11:30:01

标签: python pandas dataframe search replace

我有以下熊猫数据框:

df1:

C   D   E   F   G
111 222 333 444 555
666 777

df2:

A    B 
111  3
222  4
333  3
444  3
555  4
100  3
666  4
200  3
777  3

我需要在df2中查找以从df1.A中找到匹配的值,然后将df1中的值替换为df2.B中的配对值

因此所需的输出将是:

C   D   E   F   G
3   4   3   3   4
4   3

我尝试了左合并,并试图尝试重塑整个值,但认为必须有一个更简单/更直接的直接搜索和替换方法。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

首先创建系列映射:

s = df2.set_index('A')['B']

然后将其应用于每个值:

df1 = df1.applymap(s.get)

答案 1 :(得分:1)

尝试一下

temp=df2.set_index('A')['B']
print df1.replace(temp)

输出:

   C  D    E    F    G
0  3  4  3.0  3.0  4.0
1  4  3  NaN  NaN  NaN