python - 根据另一个数据框中的信息编辑数据框中的值
问题描述
我有一个名为 _df1 的数据框,看起来像这样。请注意,这不是整个数据框,而是其中的一部分。
_df1:
frame id x1 y1 x2 y2
1 1 1363 569 103 241
2 1 1362 568 103 241
3 1 1362 568 103 241
4 1 1362 568 103 241
964 5 925 932 80 255
965 5 925 932 79 255
966 5 925 932 79 255
967 5 924 932 80 255
968 5 924 932 79 255
16 6 631 761 100 251
17 6 631 761 100 251
18 6 631 761 100 251
19 6 631 761 100 251
20 6 631 761 100 251
21 6 631 761 100 251
88 7 623 901 144 123
89 7 623 901 144 123
90 7 623 901 144 123
91 7 623 901 144 123
92 7 623 901 144 123
93 7 623 901 144 123
94 7 623 901 144 123
在完整的数据库中,数据框中有 108003 行和 141 个唯一 ID。一个 ID 代表一个特定的对象,只要该框架具有该对象,该 ID 就会重复。换句话说,我的数据有 141 个不同的对象和 108003 帧。我编写了一个代码来识别具有相同对象但标有不同 ID 的框架。这保存在另一个名为 _df2 的数据框中,如下所示。这也只是数据框的一部分,而不是全部。
_df2:
indexID matchID
4 5
6 7
8 9
12 13
18 19
20 21
.
.
.
第二个数据框显示了哪些索引被错误地分类为不同的对象。这意味着“matchID”中的 ID 实际上与“indexID”是同一个对象。_df2 中的这个“indexID”对应于 _df1 中的“id”。
以_df2中的第一行为例,它表示索引4和5是相同的。因此,我需要将 _df1 中所有具有 'id' 5 的帧的 'id' 值更改为 4。这是最终表应该是什么样子的示例,因为 5 必须被分类为 4,而 7 具有归类为6。
输出:
frame id x1 y1 x2 y2
1 1 1363 569 103 241
2 1 1362 568 103 241
3 1 1362 568 103 241
4 1 1362 568 103 241
964 4 925 932 80 255
965 4 925 932 79 255
966 4 925 932 79 255
967 4 924 932 80 255
968 4 924 932 79 255
16 6 631 761 100 251
17 6 631 761 100 251
18 6 631 761 100 251
19 6 631 761 100 251
20 6 631 761 100 251
21 6 631 761 100 251
88 6 623 901 144 123
89 6 623 901 144 123
90 6 623 901 144 123
91 6 623 901 144 123
92 6 623 901 144 123
93 6 623 901 144 123
94 6 623 901 144 123
解决方案
使用replace
df1.id=df.id.replace(dict(zip(df2.indexID,df2.matchID)))
推荐阅读
- javascript - JSON.parse 之后的 localStorage 在 vue 状态下给出 null _id
- html - 如何将 CSS 链接到 HTML 文件以在 Django 项目中发送电子邮件
- reactjs - 无法通过 gatsby-source-woocommerce 插件在 Gatsby 页面上呈现来自 WooCommerce 数据库的内容
- django - Django:当UpdateView验证失败然后被取消时重定向到引用页面(不是当前表单)?
- javascript - url 和嵌套路由中的 i18n 语言环境更改
- github - 如何在 github 问题中搜索您正在观看的问题?
- typescript - Algolia添加对象功能不创建objectId
- c# - SQL 作业无法运行带有状态消息的 C#.net 控制台应用程序:403
- hibernate - Hibernate - 使用 JPA 存储库将 ArrayList “按原样”保存到 MySQL
- javascript - 如何在“浏览器工具栏”中运行它?