pandas/python 中的最佳数据库查找和更新
Optimal database lookup and update in pandas/python
理论上 database/coding 在这里查询 - Python / Pandas 数据帧相关。我在 table 中处理多达 50k 行,因此最佳解决方案似乎...呃,最佳。而且我也不是编码专家,所以请耐心等待。
我有一个 table 具有唯一的子 code/country 对行,一些具有匹配的父 codes.Eg:
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
现在,是否最好简单地在第一个 table 中为每个给定的 parent/country 匹配项进行查找,获取任何匹配行的行索引,然后通过行索引进行更新?
或者,以包含任何相关索引的方式生成第二个 table,并使用这些索引更新第一个 table?例如:
Parent | Country | Index(s)
A | X | 0,2
A | Y | 1
B | X | 3
B | Y | 4
如果是2,怎么办?因为我使用 df.unique() 来生成第二个 table,我每对只得到一个索引,而不是任何数学索引(而且我不确定如果我这样做它们会如何显示).而且我不确定这两种方式是否特别好,但这是我一天中想到的最好的 :o)
谢谢,
克里斯托弗/pepsi_max2k
您可能需要查看 merge 函数。
你需要做的是
df_children.merge(df_parent, on=["Parent","Country"])
其中 df_children 是您的 table 和 [Index | Parent | Child | Country] 列和 df_parent 有 [Parent |国家 |新值]
理论上 database/coding 在这里查询 - Python / Pandas 数据帧相关。我在 table 中处理多达 50k 行,因此最佳解决方案似乎...呃,最佳。而且我也不是编码专家,所以请耐心等待。
我有一个 table 具有唯一的子 code/country 对行,一些具有匹配的父 codes.Eg:
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
现在,是否最好简单地在第一个 table 中为每个给定的 parent/country 匹配项进行查找,获取任何匹配行的行索引,然后通过行索引进行更新?
或者,以包含任何相关索引的方式生成第二个 table,并使用这些索引更新第一个 table?例如:
Parent | Country | Index(s)
A | X | 0,2
A | Y | 1
B | X | 3
B | Y | 4
如果是2,怎么办?因为我使用 df.unique() 来生成第二个 table,我每对只得到一个索引,而不是任何数学索引(而且我不确定如果我这样做它们会如何显示).而且我不确定这两种方式是否特别好,但这是我一天中想到的最好的 :o)
谢谢,
克里斯托弗/pepsi_max2k
您可能需要查看 merge 函数。
你需要做的是
df_children.merge(df_parent, on=["Parent","Country"])
其中 df_children 是您的 table 和 [Index | Parent | Child | Country] 列和 df_parent 有 [Parent |国家 |新值]