iSe*_*erd 7 python dataframe pandas
我有一个问题需要用 Python3 在我的 Pandas 数据框中解决。我有两个数据框 - 第一个是;
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
Run Code Online (Sandbox Code Playgroud)
第二个是;
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
Run Code Online (Sandbox Code Playgroud)
因此,代码应该查找 - 例如在Linked Model 1列中的值,并在第二个数据框中的Name列中找到相应的值,以便可以将 ID 替换为 name,就像结果中所示;
因此,正如您在结果输出中所看到的, 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)
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4814 次 |
| 最近记录: |