0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python工具pandas筛选数据的15个常用技巧

数据分析与开发 来源:数据分析与开发 作者:数据分析与开发 2021-03-30 10:44 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

pandas是Python数据分析必备工具,它有强大的数据清洗能力,往往能用非常少的代码实现较复杂的数据处理

今天,总结了pandas筛选数据的15个常用技巧,主要包括5个知识点:

比较运算:==、《、》、》=、《=、!=

范围运算:between(left,right)

字符筛选:str.contains(pattern或字符串,na=False)

逻辑运算:&(与)、|(或)、not(取反)

比较函数:eq, ne, le, lt, ge, gt(相当于==,=!,《=,《,》=,》)

apply和isin函数

”下面以超市运营数据为例,给大家逐个讲解首先读取数据:

import pandas as pd

data=pd.read_excel(‘超市运营数据模板.xlsx’)

data

8820b96c-8e33-11eb-8b86-12bb97331649.png

先看一下各列的数据类型:

data.dtypes

商品ID int64

类别ID int64

门店编号 object

单价 float64

销量 float64

订单ID object

日期 datetime64[ns]

时间 object

dtype: object

下面以实际应用场景为例开始讲解:

1.筛选门店编号为‘CDXL’的运营数据①第一种方法,用比较运算符‘==’:

data[data.门店编号==‘CDXL’]

8bb1a37a-8e33-11eb-8b86-12bb97331649.png

②第二种方法,用比较函数‘eq’:

data[data[‘门店编号’].eq(‘CDXL’)]

8d57158e-8e33-11eb-8b86-12bb97331649.png

2.筛选单价小于等于10元的运营数据③第一种方法,用比较运算符‘《=’:

data[data.单价《=10]

90a6426e-8e33-11eb-8b86-12bb97331649.png

④第二种方法,用比较函数‘le’:

data[data[‘单价’].le(10)]

928adb4e-8e33-11eb-8b86-12bb97331649.png

3.筛选销量大于2000的运营数据⑤第一种方法,用比较运算符‘》=’:

data[data.销量》2]

92f569a0-8e33-11eb-8b86-12bb97331649.png

⑥第二种方法,用比较函数‘ge’:

data[data[‘销量’].ge(2)]

92f569a0-8e33-11eb-8b86-12bb97331649.png

4.筛选除门店‘CDXL’外的运营数据⑦第一种方法,用比较运算符‘!=’:

data[data.门店编号!=‘CDXL’]

9345c238-8e33-11eb-8b86-12bb97331649.png

⑧第二种方法,用比较函数‘ne’:

data[data[‘门店编号’].ne(‘CDXL’)]

9397ac38-8e33-11eb-8b86-12bb97331649.png

5.筛选2020年5月的运营数据首先将日期格式化:

data[‘日期’]=data[“日期”].values.astype(‘datetime64’) #如果已为日期格式则此步骤可省略

data[‘日期’]

import datetime

s_date = datetime.datetime.strptime(‘2020-04-30’, ‘%Y-%m-%d’).date() #起始日期

e_date = datetime.datetime.strptime(‘2020-06-01’, ‘%Y-%m-%d’).date() #结束日期

⑨第一种方法,用逻辑运算符号‘》’ ‘《’和‘&’:

Pandasdatetime64[ns]不能直接与datetime.date相比,需要用pd.Timestamp进行转化

data[(data.日期》pd.Timestamp(s_date))&(data.日期《pd.Timestamp(e_date))]

93dc75ca-8e33-11eb-8b86-12bb97331649.png

⑩第二种,用比较函数‘gt’‘lt’和‘&’:

data[(data[‘日期’].lt(pd.Timestamp(e_date)))&(data[‘日期’].gt(pd.Timestamp(s_date)))]

94be8c4e-8e33-11eb-8b86-12bb97331649.png

⑪第三种,用apply函数实现:

id_a=data.日期.apply(lambda x: x.year ==2020 and x.month==5)

data[id_a]

950240e2-8e33-11eb-8b86-12bb97331649.png

⑫第四种,用between函数实现:

id_b=data.日期.between(pd.Timestamp(s_date),pd.Timestamp(e_date))

data[id_b]

953ad6f0-8e33-11eb-8b86-12bb97331649.png

6.筛选“类别ID”包含‘000’的数据⑬第一种,用contains函数:

data[‘类别ID’]=data[‘类别ID’].values.astype(‘str’) #将该列转换为字符数据类型

id_c=data.类别ID.str.contains(‘000’,na=False)

data[id_c]

95c1ec76-8e33-11eb-8b86-12bb97331649.png

⑭第二种,用isin函数:

id_i=data.类别ID.isin([‘000’]) #接受一个列表

data[id_i]

很遗憾,isin函数搞不定,因为它只能判断该列中元素是否在列表中

7.筛选商品ID以“301”开头的运营数据⑮需要用contains函数结合正则表达式使用:

data[‘商品ID’]=data[‘商品ID’].values.astype(‘str’) #将该列转换为字符数据类型

id_c2=data.商品ID.str.contains(‘301d{5}’,na=False)

data[id_c2]

95c1ec76-8e33-11eb-8b86-12bb97331649.png

为了方便大家学习,我已经将本文数据及代码打包好,请关注 数据分析与开发 公众号在后台回复关键字:筛选数据 获取。

原文标题:一次性总结了pandas提取数据的15种方法,统统只需1行代码!

文章出处:【微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据分析
    +关注

    关注

    2

    文章

    1523

    浏览量

    36368
  • python
    +关注

    关注

    58

    文章

    4889

    浏览量

    90327

原文标题:一次性总结了pandas提取数据的15种方法,统统只需1行代码!

文章出处:【微信号:DBDevs,微信公众号:数据分析与开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Python AI 数字化实战:从 Pandas 自动化到 DeepSeek “星逻系统”开发,无密

    告别低效办公:Pandas自动化数据处理的技术内幕与思维升维 在数字化办公的洪流中,无数职场人正被困在“复制、粘贴、排序、筛选”的无限循环里。面对动辄数十万行、跨多张表格的庞杂数据
    发表于 04-30 13:43

    广东宏展科技ESS应力筛选箱:助力生产线可靠性筛选提质增效

    在电子、汽车电子、军工配套等批量生产环节,对每一件产品进行快速温变环境应力筛选(ESS)已成为质量控制的必要手段。然而,传统试验设备在产线应用中常面临温变速率不足、装卸耗时、能耗偏高等问题,导致筛选
    的头像 发表于 04-25 10:20 562次阅读
    广东宏展科技ESS应力<b class='flag-5'>筛选</b>箱:助力生产线可靠性<b class='flag-5'>筛选</b>提质增效

    【分享】CAE前后处理数据太多?试试Simcenter HyperMesh这3快速数据处理工具

    ,如何快速获取数据无从下手;前处理模型与后处理结果数据割裂,对照查看、快速数据提取特别麻烦;后处理多工况结果查看,海量数据无从筛选,高风险点
    的头像 发表于 04-21 17:35 266次阅读
    【分享】CAE前后处理<b class='flag-5'>数据</b>太多?试试Simcenter HyperMesh这3<b class='flag-5'>个</b>快速<b class='flag-5'>数据处理工具</b>

    [VirtualLab] 使用Python进行跨平台参数扫描

    摘要 VirtualLab Fusion允许外部访问其建模技术、求解器和结果。这有助于应用其他数据处理或优化工具来进一步研究光学模拟。在本示例中,我们演示如何使用Python脚本运行参数扫描,以及
    发表于 03-31 09:36

    1688 商品详情 API 调用与数据解析 Python 实战

    你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
    的头像 发表于 02-10 11:23 404次阅读

    Linux进程管理不用愁!这6工具帮你搞定90%场景

    在 Linux 系统中,进程是资源分配的基本单位,无论是服务器运维、程序调试还是日常使用,掌握进程管理工具都是必备技能。今天就带大家梳理 6 常用的进程管理工具,从查看进程到控制进
    的头像 发表于 02-04 16:23 3038次阅读
    Linux进程管理不用愁!这6<b class='flag-5'>个</b><b class='flag-5'>工具</b>帮你搞定90%场景

    Linux Shell文本处理神器合集:15工具+实战例子,效率直接翻倍

    在 Linux 系统中,文本是数据交互的 “通用语言”—— 日志文件、配置文件、数据报表、程序输出几乎都以文本形式存在。手动编辑文本不仅繁琐,还容易出错,而掌握 Shell 文本处理工具,能让你用几行命令完成批量
    的头像 发表于 02-03 15:42 2913次阅读
    Linux Shell文本处理神器合集:<b class='flag-5'>15</b><b class='flag-5'>个</b><b class='flag-5'>工具</b>+实战例子,效率直接翻倍

    如何使用Python读取不间断数据,并将其传输到LabVIEW进行处理?

    使用Python读取Count,如何将读取到的数据传输至Labview;传输过程中Python要保持读取的动作,不能停止。
    发表于 01-23 11:09

    合同审查、简历筛选、审核中小企业AI审核工具怎么选?

    写在前面 去年帮朋友公司选AI审核工具,踩了不少坑。今天把经验总结一下,给需要做合同审查、简历筛选、内容审核的中小企业做个参考。 先说结论: 需要多种审核工具、预算有限、担心数据安全的
    的头像 发表于 12-18 13:43 534次阅读

    应用生命周期管理Perforce ALM 产品更新详解:标签和筛选功能

    Perforce ALM更新标签与筛选功能!支持自定义标签、收藏常用项、高级条件组合,网页端和桌面端体验全面升级,让复杂的需求管理更高效、追溯更清晰。
    的头像 发表于 11-25 11:08 704次阅读
    应用生命周期管理Perforce ALM 产品更新详解:标签和<b class='flag-5'>筛选</b>功能

    Python 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    一、技术选型:为什么选 Python 而不是 Java? 结论: “调研阶段用 Python,上线后如果 QPS 爆表再考虑 Java 重构。” 二、整体架构速览(3 分钟看懂) 三、开发前准备(5
    的头像 发表于 10-21 16:59 632次阅读
    用 <b class='flag-5'>Python</b> 给 Amazon 做“全身 CT”——可量产、可扩展的商品详情爬虫实战

    有哪些工具可以用于复核装置数据

    复核装置数据需根据装置类型(电气、机械、工业自动化等)和数据特性(实时性、精度要求)选择工具,以下是覆盖全场景的专业工具及应用方法: 一、电气参数复核
    的头像 发表于 09-25 14:03 702次阅读
    有哪些<b class='flag-5'>工具</b>可以用于复核装置<b class='flag-5'>数据</b>?

    termux调试python猜数字游戏

    用termux做一猜数字游戏 下面是在Termux中创建猜数字游戏的步骤及完整实现方案,结合Python实现(最适配Termux环境): ? 一、环境准备(Termux基础配置) 1.
    发表于 08-29 17:15

    termux如何搭建python游戏

    安装Python及包管理工具 ```bash apt install -y python python-pip# 自动安装Python3
    发表于 08-29 07:06

    基础篇3:掌握Python中的条件语句与循环

    Python编程语言中,条件语句和循环是构成复杂逻辑和数据处理的基石。本篇基础教程将帮助您深入了解Python中的条件语句和循环结构,让您能够更好地控制程序流程。 条件语句 条件语句允许程序根据
    发表于 07-03 16:13