python - 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
第二个是;
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 替换为 name,就像结果中所示;
因此,您可以在结果输出中看到,None 保持为 None(可以替换为 numpy N/As),并且第二个数据帧中的名称现在替换为第一个数据帧中它们对应的模型 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
推荐阅读
- python - 在 macOS 上通过 Python 打开 Excel
- msbuild - 框架与 Visual Studio 中的 Msbuild 版本
- python - 如何将字符串数组分成 2 个单独的部分
- java - Java SWT 浏览器。具有超高清 (4K) 或更高分辨率的屏幕上的不同输出
- python - flask + restful web service 无法运行文本分类模型 + python
- gem5 - 如何在完整的系统 gem5 模拟中获得图形 GUI 输出和用户触摸/键盘/鼠标输入?
- git - 如何在 VSTS 中使用外部 powershell 模块
- database - 在 Laravel Voyager 中创建表时创建迁移文件
- java - 带有 maven intel IDEA 的包不存在 javaFX
- powershell - 如何使用 Get-AnsibleParam,Ansible 中的内置函数