iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 列表筛选数据详解
  • 912
分享到

Python 列表筛选数据详解

2024-04-02 19:04:59 912人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录总结 在做数据处理中,常会遇到列表筛选,比如有以下两个列表: 根据上列表中的KEY1 , 筛选下列表的数据,也就是标黄的数据。数量不大的情况,一般就是遍历比较,逻辑简单,几行

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

根据上列表中的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 三种方法效率。


筛选目标18971条, 待处理数据63275条
遍历生成数据 耗时11.591秒 获得数据量 12024
['11080000427', 'eArVD', 4]
filter 耗时11.5秒 获得数据量 12024
['11080000427', 'eArVD', 4]
merge 耗时0.058秒 获得数据量 12024
['11080000427', 'eArVD', 4]

筛选目标189733条, 待处理数据632363条
遍历生成数据 耗时1597.4296秒 获得数据量 120180
['1108000000227', 'NkoEQ', 2]
filter 耗时1575.0432秒 获得数据量 120180
['1108000000227', 'NkoEQ', 2]
merge 耗时0.64秒 获得数据量 120180
['1108000000227', 'NkoEQ', 2]

经过比较, 直接遍历生成和列表生成式+filter的效率基本一致, pandas 的merge 效率最高。适合大批量数据处理。

上代码


print("筛选目标{}条, 待处理数据{}条".format(n1,n2))
# 直接遍历生成数据,计时
t1 = time.time()
list_temp = [n[0] for n in list1]
list3 = []
for n in list2:
    if n[0] in list_temp:
        list3.append(n)
t2 = time.time()
print("遍历生成数据 耗时{}秒".format(round(t2 - t1, 4)), "获得数据量", len(list3))
print(list3[0])
# 用filter筛选数据,计时
t1 = time.time()
list_temp = [n[0] for n in list1]
list3 = [n for n in filter(lambda x: x[0] in list_temp, list2)]
t2 = time.time()
print("filter 耗时{}秒".format(round(t2 - t1,4)), "获得数据量", len(list3))
print(list3[0])
# 用pd.merge 筛选数据,计时
t1 = time.time()
df1 = pd.DataFrame(list1, columns=['k1','m1'])
df2 = pd.DataFrame(list2, columns=['k1','m2','n2'])
df3 = pd.merge(df1[['k1']], df2, how='inner', on='k1')
t2 = time.time()
print("merge 耗时{}秒".format(round(t2 - t1,4)), "获得数据量", len(df3))
print(list(df3.iloc[0]))

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Python 列表筛选数据详解

本文链接: https://www.lsjlt.com/news/157624.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 列表筛选数据详解
    目录总结 在做数据处理中,常会遇到列表筛选,比如有以下两个列表: 根据上列表中的KEY1 , 筛选下列表的数据,也就是标黄的数据。数量不大的情况,一般就是遍历比较,逻辑简单,几行...
    99+
    2022-11-12
  • layui怎么对列表数据进行筛选
    在Layui中,可以使用table模块的filter()方法对列表数据进行筛选。具体步骤如下:1. 在HTML中定义一个表格,并为每...
    99+
    2023-09-22
    layui
  • python 列表套json字典根据相同的key筛选数据
    前言: 工作中遇到以下小问题,解决方法如下,可能比较暴力,暂时留档,再进行优化。 要求:将列表中json的 ‘id’ 字段值相同的数据,根据 type的值,按...
    99+
    2022-11-10
  • 使用Python的filter()函数进行列表筛选
    使用Python的filter()函数进行列表筛选filter()函数是Python内置的一个高阶函数,用于筛选满足指定条件的元素,并将其组成一个新的列表返回。在列表处理中,filter()可以起到非常重要的作用,可以大大简化代码,提高效率...
    99+
    2023-11-18
    Python filter() 列表筛选
  • python列表套json字典怎么根据相同的key筛选数据
    本篇内容介绍了“python列表套json字典怎么根据相同的key筛选数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!前言:工作中遇到以下...
    99+
    2023-06-30
  • shell脚本 之 awk详解(数据筛选)
    1. awk命令简介 awk是专门为文本处理设计的编.程语言,也是一个应用程序,几乎所有Linux发行版本都自带这个程序。我们通常用它进行数据扫描、过滤、统计汇总工作。 awk是一种强大的编辑工具,比...
    99+
    2023-09-29
    linux 运维 服务器
  • Python数据类型详解(二)列表
    一.基本数据类型   整数:int   字符串:str(注:t等于一个tab键)   布尔值: bool   列表:list (元素的集合)   列表用[]   元祖:tuple   元祖用()   字典...
    99+
    2022-06-04
    详解 数据类型 列表
  • Python如何提取csv数据并筛选指定条件数据详解
    目录前言一、使用pandas和numpy库二、使用步骤1.引入库2.读入数据3.转化格式4.处理数据总结前言 本文主要介绍通过Python提取csv文件中数据,并对数据进行处理。 编...
    99+
    2022-11-11
  • Go素数筛选分析详解
    目录Go素数筛选分析1. 素数筛选介绍2. 代码分析3. 代码验证4. 总结Go素数筛选分析 1. 素数筛选介绍 学习Go语言的过程中,遇到素数筛选的问题。这是一个经典的并发编程问题...
    99+
    2022-11-11
  • 筛选特定内容:Python中筛选DataFrame指定数据列包含特定内容的所有数据行
    筛选特定内容:Python中筛选DataFrame指定数据列包含特定内容的所有数据行 在数据处理和分析中,经常需要对数据进行筛选以便找到我们需要的信息。而在Python中,使用Pandas库中的Dat...
    99+
    2023-08-31
    python pandas 数据分析
  • R语言:数据筛选match的使用详解
    数据筛选是在分析中最常用的步骤,如微生物组分析中,你的OTU表、实验设计、物种注释之间都要不断筛选,来进行数据对齐,或局部分析。 今天来详解一下此函数的用法。 match match...
    99+
    2022-11-12
  • R语言列筛选的方法select实例详解
    目录前言1. 数据描述2. 使用R语言默认的方法:列选择3. tidyverse的rename函数4. tidyverse的select函数5. select函数注意事项5.1 绝对...
    99+
    2022-11-13
  • Python 数据筛选功能实现
    目录1.列表2.字典3.数据框        无论是在数据分析还是数据挖掘的时候,数据筛选总会涉及到。...
    99+
    2023-05-14
    Python 数据筛选
  • python:列表详解
    目录列表list1、列表创建2、列表访问1)一维列表的访问2)二维列表的访问3、修改元素5、del命令6、列表运算1)列表相加2)列表相乘7、列表方法1) index(value[,...
    99+
    2022-11-12
  • Python:使用pandas对excel数据筛选选择
    1.筛选方式1:直接筛选 #直接筛选 #DataFrame索引使用[], #直接索引语法:df[] 1.1 直接筛选,选择单列数据:df["列"] 2直接筛选,选择多列数据:df[["列1","列2"]](注意:多嵌套列) 3直接筛选,选择...
    99+
    2023-09-13
    python pandas excel
  • python列表与列表算法详解
    目录1. 序列类型定义2. 列表的基础知识2.1 列表定义2.2 列表基本操作总结1. 序列类型定义 序列是具有先后关系的一组元素 序列是一维元素向量,元素类型可以不同 ...
    99+
    2022-11-12
  • Python数据结构之列表与元组详解
    目录Python 列表(list):1.序列介绍:2.列表的概述:3.创建一个列表4.列表的索引5.列表的分片6.列表的分片赋值7.循环遍历列表8.查找元素与计数9.列表增加元素:1...
    99+
    2022-11-12
  • python之列表详解
    文章目录 一.创建列表1.基于弱数据类型语言的定义2.通过全局函数list()定义3.创建空列表 二.访问列表的值1.通过下标索引2.通过for循环遍历3.通过while循环遍历 ...
    99+
    2023-10-18
    python 开发语言 后端 列表
  • vue实现下拉框筛选表格数据
    本文实例为大家分享了vue实现下拉框筛选表格数据的具体代码,供大家参考,具体内容如下 html中: //下拉框          <el-form-item label="选择...
    99+
    2022-11-13
  • Python数据分析之 Pandas Dataframe条件筛选遍历详情
    目录一、条件筛选二、Dataframe数据遍历for...in...语句iteritems()方法iterrows()方法itertuples()方法一、条件筛选 查询Pandas ...
    99+
    2022-11-11
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作