gpt4 book ai didi

python - 在 pandas DataFrame 中有效地搜索列表值的组合

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:14 25 4
gpt4 key购买 nike

我正在遍历多个 pandas 数据框,每次迭代我都会提取 2 个列表。然后,对于每 2 个列表组合,我需要在另一个数据框中找到该行,其中出现 2 个列表中所有值的每个组合。

简化示例:

df 看起来像这样(任何 D_val P_val 可能只出现一次):

D_val | P_val | D_PCode  
A | 1 | 25
D | 1 | 21
C | 2 | 32
B | 4 | 35
D | 2 | 126
B | 1 | 3
C | 1 | 312

对于具有以下列表的单次迭代 -

list1 = [1,2]  
list2 = [A,B,C]

我希望得到以下列表:
[25, 3, 312, 32]

解释:

for [A,1] - 25  
for [A,2] - nothing
For [B,1] - 3

我使用嵌套循环实现了它,但是由于多次迭代、大数据框和长列表,它花费的时间太长了。

有什么关于如何高效实现的建议吗?如果需要,我很乐意使用其他数据结构。

最佳答案

我们只用了两次isin

df1=df.loc[df.D_val.isin(list2)&df.P_val.isin(list1)]
df1
Out[211]:
D_val P_val D_PCode
0 A 1 25
2 C 2 32
5 B 1 3
6 C 1 312

关于python - 在 pandas DataFrame 中有效地搜索列表值的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53915239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com