python - pandas/python 中的最佳数据库查找和更新
问题描述
此处的理论数据库/编码查询 - Python / Pandas 数据框相关。我正在处理一个表中多达 50k 行,因此最佳解决方案似乎......呃,最佳。而且我也不是编码专家,所以请耐心等待。
我有一个具有唯一子代码/国家/地区对行的表,其中一些具有匹配的父代码。例如:
Index | Parent | Child | Country | NewValue
0 | A | A-1 | X | Null
1 | A | A-1 | Y | Null
2 | A | A-2 | X | Null
3 | B | B-1 | X | Null
4 | B | B-2 | Y | Null
我需要使用计算出的唯一值 (NewValue) 更新每个父/国家对。在每一行上查找和更新每一对的最佳方法是什么?
到目前为止,我正在生成一个单独的唯一父/国家对列表(以避免不必要地为每一行计算 NewValue;我只是遍历这个列表,为每一对生成 NewValue),例如:
Parent | Country
A | X
A | Y
B | X
B | Y
现在,最好在第一个表中为每个给定的父/国家匹配项进行查找,获取任何匹配行的行索引,然后通过行索引进行更新?
或者,以包含任何相关索引的方式生成第二个表,并使用这些索引来更新第一个表?例如:
Parent | Country | Index(s)
A | X | 0,2
A | Y | 1
B | X | 3
B | Y | 4
如果是2,怎么做?因为我使用 df.unique() 来生成第二个表,所以我每对只得到一个索引,而不是任何数学索引(我不确定如果我这样做了它们会如何显示)。而且我不确定这两种方法是否特别好,但这是我一天中想出的最好的方法:o)
谢谢,
克里斯托弗 / pepsi_max2k
解决方案
您可能想查看合并功能。
在你的情况下你必须做的是
df_children.merge(df_parent, on=["Parent","Country"])
其中 df_children 是您的 [Index | 家长 | 儿童 | Country] 列和 df_parent 具有 [Parent | 国家 | 新值]
推荐阅读
- module - 为什么 Rust 允许公开访问私有模块?
- bash - 用于检查 PDF 文件内容的 Shell 脚本
- android - 库中的 FileProvder 安全异常
- python - 熊猫数据框根据条件从同一数据框中的两列中减去值?
- jenkins - Jenkins 管道如何更改到另一个文件夹并运行 npm 测试
- pivot-table - 双引号中的雪花枢轴列的问题或错误
- java - java - 如何在java 2d数组中交换具有特定索引的列?
- python - 自定义用户模型不创建对象
- java - 如何在一个标签上绘制多个类?(爪哇)
- javascript - WebPack 无法通过本地项目中的命令执行