在做数据处理中,常会遇到列表筛选,比如有以下两个列表:


根据上列表中的KEY1 , 筛选下列表的数据,也就是标黄的数据。数量不大的情况,一般就是遍历比较,逻辑简单,几行代码搞掂。
但如果列表达到万,或者百万、千万,那遍历效率就低了。
先构造测试的列表。
# 构造筛选目标列表,确保KEY不重复
n1 = 30000
n1_set = set([random.randint(1,n1) for n in range(n1)])
n1 = len(n1_set)
list1 = [['1108{:0>6d}27'.format(n), "".join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',10))] for n in n1_set]
# 构造待筛选数据列表,确保KEY不重复
n2 = 100000
n2_set = set([random.randint(1,n2) for n in range(n2)])
n2= len(n2_set)
list2 = [['1108{:0>6d}27'.format(n), "".join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',5)),n ] for n in n2_set]
比较遍历、列表生成式+filter 、pandas 的 merge

在数据处理场景中,文章探讨了如何从大型列表中筛选数据。对比了遍历、列表生成式+filter以及pandas的merge方法在处理万级到千万级数据时的效率,结果显示pandas的merge在大批量数据处理时表现最佳。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



