pandas / python中的最佳数据库查找和更新
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas / python中的最佳数据库查找和更新相关的知识,希望对你有一定的参考价值。
理论数据库/编码查询在这里 - Python / Pandas数据帧相关。我在表中处理多达5万行,因此最佳解决方案似乎......最佳,最佳。我也不是编码专家,所以,请耐心等待。
我有一个包含唯一子代码/国家/地区对行的表,其中一些具有匹配的父代码.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
现在,为每个给定的父/国家匹配简单地在第一个表中进行查找,获取任何匹配行的行索引,然后通过行索引更新是否更好?
或者,以包含任何相关索引的方式生成第二个表,并使用它们来更新第一个表?例如:
Parent | Country | Index(s)
A | X | 0,2
A | Y | 1
B | X | 3
B | Y | 4
如果2,怎么样?因为我正在使用df.unique()来生成第二个表,所以我每对只得到一个索引,而不是任何mathing索引(如果我这样做,我不确定它们是如何显示的)。而且我不确定这两种方式是否特别好,但它是我一天中提出的最佳方式:o)
谢谢,
克里斯托弗/ pepsi_max2k
你可能想看看merge函数。
你需要做的就是
df_children.merge(df_parent, on=["Parent","Country"])
其中df_children是你的表[Index |家长|孩子|国家]列和df_parent有[Parent |国家|的NewValue]
以上是关于pandas / python中的最佳数据库查找和更新的主要内容,如果未能解决你的问题,请参考以下文章
python 使用datetime列查找pandas数据帧中的时间漏洞