Pandas-通过在另一个数据框中查找来替换数值[英] Pandas - Replacing Values by Looking Up in an Another Dataframe

本文是小编为大家收集整理的关于Pandas-通过在另一个数据框中查找来替换数值的处理方法,想解了Pandas-通过在另一个数据框中查找来替换数值的问题怎么解决?Pandas-通过在另一个数据框中查找来替换数值问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个问题需要用 Python3 在我的 pandas 数据框中解决.我有两个数据框 - 第一个是 as;

    ID Name  Linked Model 1  Linked Model 2  Linked Model 3
0  100    A          1111.0          1112.0             NaN
1  101    B          1112.0          1113.0          1115.0
2  102    C             NaN             NaN             NaN
3  103    D          1114.0             NaN             NaN
4  104    E          1114.0          1111.0          1112.0

第二个是;

   Model ID Name
0      1111    A
1      1112  A,B
2      1113    C
3      1114    D
4      1115    Q
5      1116    Z
6      1117    E
7      1118    W

所以代码应该在 - 例如 Linked Model 1 列中查找值,并在第二个数据帧的 Name 列中找到相应的值,以便 ID可以用名字替换,就像结果一样;

在此处输入图片描述

如您在结果输出中所见,None 保持为 None(可以替换为 numpy N/As),并且第二个数据帧中的名称现在替换为它们对应的 Model ID第一个数据帧.

我期待听到您的解决方案!

谢谢

推荐答案

初始化替换字典并使用 df.replace 将这些 ID 映射到名称.

m = df2.set_index('Model ID')['Name'].to_dict()
v = df.filter(like='Linked Model')
df[v.columns] = v.replace(m)

df
    ID Name Linked Model 1 Linked Model 2 Linked Model 3
0  100    A              A            A,B            NaN
1  101    B            A,B              C              Q
2  102    C            NaN            NaN            NaN
3  103    D              D            NaN            NaN
4  104    E              D              A            A,B

本文地址:https://www.itbaoku.cn/post/1728082.html