gpt4 book ai didi

python - 按列表搜索数据框的最佳方法

转载 作者:行者123 更新时间:2023-11-28 21:32:08 25 4
gpt4 key购买 nike

我在其中一列中有一个包含该值的数据框:

df.Sample
POLSD233123
POLRR419910
POLAG002144
DEUOD002139
MEDOW203919
...

然后我从另一个 df 创建列表,其中只有数字的数字部分(不同的基数):例如

more = [419910, 983129,9128412,5353463,203919]

所以在列表中,我在数据框中有两个数字。我需要创建常见和不常见值的列表。

当我有一个普通的时候,我也会创造一个非普通的。我只是用 python 写了一个简单的循环:

listOfRepetitionBase_SNPS = []
for i in range(len(more)):
temp = baza[baza['Sample'].str.contains(more[i])]
if len(temp) > 0:
listOfRepetitionBase_SNPS.append(temp)
else:
print("no that record in base,", more[i])

它的工作......但数据框有 90xxx 样本,一旦运行需要 5-10 分钟来处理。有人可以给我一些建议,告诉我如何加快这个过程,也许是通过 pandas 吗?

这种情况下的结果应该是:

listOfRepetitionBase_SNPS =  419910, 203919
uncommon = 983129,9128412,5353463

最佳答案

你可以把 more 变成 set并使用 any 检查成员(member)资格在数据框中的所有字符串上:

s = set(map(str, more))
common = [i for i in s if any(i in row for row in df.Sample.values)]
# ['419910', '203919']
uncommon = list(s.difference(common))
#['9128412', '5353463', '983129']

关于python - 按列表搜索数据框的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56986966/

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