python - 如何根据最高匹配列映射来自另一个数据帧的值
问题描述
有 2 个数据帧,我想从另一个数据帧复制行,其中每个数据帧的一个特定列以超过 80% 的精度匹配,否则将行保留在 dataframe1 中。
我试过工作但没有得到预期的输出。需要帮助才能获得输出。以前我在使用
for index, row in df1.iterrows():
for index2, config2 in df2.iterrows():
if row['id_number'] == config2['identity_No']:
## Mapping code here
上面的代码工作正常,但现在必须映射 df2 中的行,如果 df1 中的任何行基于row['id_number'] == config2['identity_No']匹配 df2 中的任何行,它应该附加从 df2 到 df1 的特定列值。
代码一直在使用:
for index, row in df1.iterrows():
for index2, config2 in df2.iterrows():
if process.extractOne(row["id_number"], config2["identity_No"])[1] >=80:
df1['id_number'][index] = config2['identity_No']
df1['company_name'][index] = config2['comp_name']
df1['company_code'][index] = config2['comp_code']
df1['score'][index] = config2['OR_Score']
但是上面的代码在我的情况下不起作用。需要建议。
解决方案
推荐阅读
- linux - 带有';;&'的linux zsh shell中的'case':在'&'附近解析错误
- ssh - 如何SSH到我的虚拟机unbuntu 14.04的根目录
- angular - 在 Angular 中的 TextArea 内的当前(或最后一个)插入符号位置插入文本;元素不被解释为 TextArea
- docker - 为什么相同的 Docker 映像会在不同的存储库上生成具有不同 SHA-256 的不同清单?
- c# - 由于游戏对象处于非活动状态,无法启动 Couroutine
- c++ - 何时在 GCC 的成员函数指针中使用 delta?
- indexing - 为什么在 EF Core 中默认只为复合 PK 定义一个索引?
- python - 如何根据深度嵌套的键对嵌套字典列表进行排序?
- c# - 使用 EF 框架的 .NET 核心 MVC - 将数据从一个控制器传递到另一个控制器
- docker - 如何将多个参数传递给容器