Python 数据筛选功能实现

目录
  • 1.列表
  • 2.字典
  • 3.数据框

无论是在数据分析还是数据挖掘的时候,数据筛选总会涉及到。这里我总结了一下python中列表,字典,数据框中一些常用的数据筛选的方法。

1.列表

案例一:从一个含有数字0-9的列表中筛选出偶数(奇数):

1.enumerate方法(生成两列数据,第一列是索引,第二列是数值)

	num=[i for i in range(10)]
	num1=[]
	for index,count in enumerate(num):
	    if count%2==0:
	        num1.append(num[index])
	print(num1)

2.列表推导式(常用)

	num=[i for i in range(10) if i%2==0]
	print(num)

二者输出结果都是[0,2,4,6,8],相比之下列表推导式要简洁的多

2.字典

案例二:从一个包含学生姓名和成绩的字典中,筛选出成绩大于60的学生
        首先,我们构造一个字典inf:

	name=['Bob','Jim','Gin','Angel']
	grade=[80,55,75,95]
	inf=dict(zip(name,grade))
	print(inf)

输出结果为:{‘Bob’: 80, ‘Jim’: 55, ‘Gin’: 75, ‘Angel’: 95}

以下,我们可以通过字典推导式筛选出学生成绩(大于60):

	dict1={key:value for key,value in inf.items() if value>60}
	print(dict1)

输出结果:{‘Bob’: 80, ‘Gin’: 75, ‘Angel’: 95}

如果你只是想要返回成绩大于60的学生名字或者分数的话,可以将dict1中的key:value部分改为key或者value即可.当然上述步骤是先建立一个字典,然后再从字典里筛选出符合特定条件的值。可不可以一步完成呢?
        当然阔以~

	dict2={name[i]:grade[i] for i in range(len(grade)) if grade[i]>60}
	print(dict2)

输出结果也是{‘Bob’: 80, ‘Gin’: 75, ‘Angel’: 95}.不过,这里需要注意的是:如果列表name 和列表grade长度不一致的话,后面for循环中的len函数应该去长度较短的列表!

3.数据框

案例三:利用pandas从招聘信息表中筛选出特定条件的信息

首先,导入数据

	import pandas as pd
	df=pd.read_excel('job_information.xls',encoding='utf-8')
	df

招聘信息表如下:

A. 筛选出工作经验(exp)为4年的招聘信息

	df[df['exp'].isin([4])]

通用筛选方式:data[data[‘筛选列’].isin([num])]

需要注意的是:isin函数里筛选的num必须用[]括起来!可以是一个,也可以是多个。但只能对特定的数字进行筛选,最后筛选的结果如下:

B. 筛选出具体给明的工资(salary)(过滤掉薪资面议)

	df[df['salary'].str.contains('K')]

通用筛选方式:data[data[‘筛选列’].str.contains(‘特定字符’)]

需要注意的是:只能对特定的字符串进行筛选,最后筛选结果如下:

C.筛选出只含有K的工资(过滤14薪等以及薪资面议)

	df[~df['salary'].str.contains('薪')]

因为这里需要过滤的字符都出现了"薪",我们依旧可以使用contains函数。需要注意的是"~“代表"非”(在对于isin函数也有用!),即排除salary中包含"薪" 这个字符的所有数据。最后,筛选结果如下:

D.筛选出含有K的工资(包括14薪等)

这里由于展示的数据样本少,该方法最终呈现的效果是和方法B是一样的。使用的方法是:apply函数+正则

def select(x):
    pat='[0-9]?[0-9]K-[0-9]?[0-9]K'
    rst=re.search(pat,x)
    if rst:
        return rst.group(0)
    return 0
df['salary'].apply(select)

需要注意的是:在使用group函数的时候,需要先判断是否可以先查到对应的值。否则会报错(NoneType object has no attribute ‘group’ )。最后筛选的结果如下:

此外,还有一些筛选数据的方法如pivot_table(数据透视表),filter函数+lambda函数等,这就需要大家在实际应用的时候灵活选择。

到此这篇关于Python 数据筛选的文章就介绍到这了,更多相关Python 数据筛选内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用python对多个txt文件中的数据进行筛选的方法

    一.问题描述 筛选出多个txt文件中需要的数据 二.数据准备 这是我自己建立的要处理的文件,里面是随意写的一些数字和字母 三.程序编写 import os def eachFile(filepath): pathDir =os.listdir(filepath) #遍历文件夹中的text return pathDir def readfile(name): fopen=open(name,'r') for lines in fopen.readlines(): #按行读取text中的内容 lin

  • python 列表套json字典根据相同的key筛选数据

    前言: 工作中遇到以下小问题,解决方法如下,可能比较暴力,暂时留档,再进行优化. 要求:将列表中json的 ‘id’ 字段值相同的数据,根据 type的值,按照一定的优先级次序排列,列表中仅保留优先级最高的type. 测试用例: list1 示例数据: type优先级列表:[6, 4, 2, 5, 8, 3, 7, 1] (依次递减,6优先级最高,1优先级最低) draw_data  = [         {'geometry':{"coordinates":[121.8763583

  • 用Python实现数据筛选与匹配实例

    目录 案例一:数据筛选 案例二:数据匹配 下面我们将学习两个项目案例代码,分别解决Excel常见场景中的数据筛选问题和数据匹配问题. 数据筛选要求我们在表中筛选出符合条件的数据.数据匹配需要我们在多个表之间匹配相关的数据. 与之前一样,完成项目问题的代码,需要我们先分析数据筛选和数据匹配的需求,再找到对应知识点,确定代码的执行顺序,从而实现项目代码. 案例一:数据筛选 这个案例需要我们筛选出迟到人员的信息,来具体看看. 在[10月考勤统计.xlsx]工作簿中,保存了公司一百名员工的迟到信息,这些

  • Python如何提取csv数据并筛选指定条件数据详解

    目录 前言 一.使用pandas和numpy库 二.使用步骤 1.引入库 2.读入数据 3.转化格式 4.处理数据 总结 前言 本文主要介绍通过Python提取csv文件中数据,并对数据进行处理. 编译器:Anaconda3 语言:Python3 一.使用pandas和numpy库 通过pandas库可以从csv提取到数据,但是数据的格式是DateFrame 格式,因为我不懂怎么处理DateFrame 格式的数据,所以就使用numpy库,将提取的数据转化为数组格式,这样可以就可以通过对数组的处理

  • Python如何用filter函数筛选数据

    一.filter函数简介 filter函数主要用来筛选数据,过滤掉不符合条件的元素,并返回一个迭代器对象,如果要转换为列表list或者元祖tuple,可以使用内置函数list() 或者内置函数tuple()来转换: filter函数接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中,就好比是用筛子,筛选指定的元素; 语法: filter(function, iterable) 参数: fu

  • 如何利用Python让Excel快速按条件筛选数据

    本文即使用python实现excel快速筛选数据 有一张 12 个月份的产品销售情况表. 安装所需的 Python 第三方库 xlwings 的特色: xlwings 能够非常方便地读写 Excel 文件中的数据,并且能够进行单元格格式的修改 可以和 Matplotlib 以及 Pandas 无缝连接 可以调用 Excel 文件中 VBA 写好的程序,也可以让 VBA 调用用 Python 写的程序 开源免费,一直在更新 导入 xlwings: import xlwings as xw 通过 P

  • Python数据分析之 Pandas Dataframe条件筛选遍历详情

    目录 一.条件筛选 二.Dataframe数据遍历 for...in...语句 iteritems()方法 iterrows()方法 itertuples()方法 一.条件筛选 查询Pandas Dataframe数据时,经常会筛选出符合条件的数据,接下来介绍一下具体的使用方式. 示例Dataframe如下: 单条件筛选,例如查询gender为woman的数据: df[df["gender"]=="woman"] # 或 df.loc[df["gender

  • Python 数据筛选功能实现

    目录 1.列表 2.字典 3.数据框 无论是在数据分析还是数据挖掘的时候,数据筛选总会涉及到.这里我总结了一下python中列表,字典,数据框中一些常用的数据筛选的方法. 1.列表 案例一:从一个含有数字0-9的列表中筛选出偶数(奇数): 1.enumerate方法(生成两列数据,第一列是索引,第二列是数值) num=[i for i in range(10)] num1=[] for index,count in enumerate(num): if count%2==0: num1.appe

  • Python Pandas条件筛选功能

    目录 一.准备数据 二.以>,<,==,>=,<=来进行选择 三..isin() 四..str.contains()实现 一.准备数据 import pandas as pd   data = pd.read_excel(r'销售数据.xlsx') print(data) 数据如下: 二.以>,<,==,>=,<=来进行选择 “等于”一定是用‘==’,如果用‘=’就不是判断大小了: 例如:筛选销售员是马姐的数据 df = data[data['销售员'] =

  • python使用pandas实现筛选功能方式

    目录 1 筛选出数据的指定几行数据 2 筛选出数据某列为某值的所有数据记录 3 模式匹配 4 范围区间值筛选 5 获取某一行某一列的某个值 6 获取原始的numpy二维数组 7 根据条件得到某行元素所在的位置 8 元素位置筛选 9. 删除多行/多列 10 to_datetime将字符串格式转化为日期格式 11 apply() 函数 12 map() 函数 参考 总结 1 筛选出数据的指定几行数据 data=df.loc[2:5] #这里的[2:5]表示第3行到第5行内容,[]第一个起始是0,表示

  • Python实现的根据文件名查找数据文件功能示例

    本文实例讲述了Python实现的根据文件名查找数据文件功能.分享给大家供大家参考,具体如下: #-*- coding: UTF-8 -*- import os import shutil AllFiles=[] NameFiles=[] def findFie(filePath): pathDir = os.listdir(filePath) for allDir in pathDir: # print(allDir) AllFiles.append(allDir) #pass #filepat

  • 利用Python实现Excel的文件间的数据匹配功能

    我们知道Excel有一个match函数,可以做数据匹配. 比如要根据人名获取成绩 而参考表sheet1的内容如下: 要根据sheet1匹配每人的成绩,用Excel是这么写 index(Sheet1!B:B,MATCH(A2,Sheet1!A:A,0)) 意思就是获取sheet1的B列的内容,根据我的A列匹配sheet1的A列的内容 但是如何用python实现这一点呢,我写了一个函数,非常好用,分享给大家. 这个函数考虑到了匹配多个字段,多个sheet. import pandas as pd d

  • python实现不同数据库间数据同步功能

    功能描述 数据库间数据同步方式很多,在上篇博文中有总结.本文是用py程序实现数据同步. A数据库中有几十张表,要汇聚到B数据库中,且表结构一致,需要准实时的进行数据同步,用工具实现时对其控制有限且配置较繁琐,故自写程序,可自由设置同步区间,记录自己想要的日志 代码 本代码实现功能简单,采用面向过程,有需求的同学可以自己优化成面向对象方式,在日志这块缺少数据监控,可根据需求增加.主要注意点: 1.数据抽取时采用区间抽取(按时间区间).流式游标迭代器+fetchone,避免内存消耗 2.在数据插入时

  • 基于JavaScript实现前端数据多条件筛选功能

    有时候也会需要在前端进行数据筛选,增强交互体验.当数据可用的筛选条件较多时,把逻辑写死会给后期维护带来很大麻烦.下面是我自己写的一个简单的筛选器,筛选条件可以根据数据包含的字段动态设置. 仿照京东的筛选条件,这里就取价格区间和品牌作为测试. 代码 代码中主要使用js的过滤器Array.prototype.filter,该方法会对数组元素进行遍历检查,返回一个符合检查条件的新数组,不会改变原数组. // filter() var foo = [0,1,2,3,4,5,6,7,8,9]; var f

  • Python数据报表之Excel操作模块用法分析

    本文实例讲述了Python数据报表之Excel操作模块用法.分享给大家供大家参考,具体如下: 一 点睛 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量.资源利用.安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理.利用Python操作Excel的模块XlsxWriter(https://xlsxwriter.readthedocs.org),可以操作多个工作表的文字.数字.公式.图表等. 二

  • Angularjs实现带查找筛选功能的select下拉框示例代码

    前言 对于select的下拉列表,像国家选择这样的功能,全世界那么多国家,一直拉滚动条多辛苦,眼睛也要盯着找,累!所以为优化用户体验,带查找功能的下拉框是非常非常有必要的.都知道jquery里有这样的插件,但我们用的是Angularjs,更希望用双向绑定,指令的方式优雅地解决这个问题. 分析 我们的目标是在原来的<select ng-options="">标签上新加一个属性 select-search 就能支持查找的功能.如果这个属性没起作用,也不影响原来的select的功

随机推荐