20个Pandas数据实战案例,干货多多

pandas数据分析实例pandas、matplotlib) 本人喜欢数据分析,接触数据分析也接近两年的时间了,最近在学习pandas。学习最好的方法是使用它,所以,根据这个文章,做了一些练习,并记录下我练习的轨迹。 文章链接:https://mp.weixin.qq.com/s/RcrQmqty1FHEDbQfxv2XTQ 主要是四部分:数据读取,数据概述,数据清洗和整理,分析和可视化 一、数据读取 df = pd.read_csv(r'F:\python学习\DataAnalyst.csv',encoding='gb2312') print(df) 结果如下: 阅读详情

今天我们讲一下pandas当中的数据过滤内容

下面小编会给出大概20个案例来详细说明数据过滤的方法,首先我们先建立要用到的数据集,代码如下

import pandas as pd
df = pd.DataFrame({
    "name": ["John","Jane","Emily","Lisa","Matt"],
    "note": [92,94,87,82,90],
    "profession":["Electrical engineer","Mechanical engineer",
                  "Data scientist","Accountant","Athlete"],
    "date_of_birth":["1998-11-01","2002-08-14","1996-01-12",
                     "2002-10-24","2004-04-05"],
    "group":["A","B","B","A","C"]
})

output

name  note           profession date_of_birth group
0   John    92  Electrical engineer    1998-11-01     A
1   Jane    94  Mechanical engineer    2002-08-14     B
2  Emily    87       Data scientist    1996-01-12     B
3   Lisa    82           Accountant    2002-10-24     A
4   Matt    90              Athlete    2004-04-05     C

筛选表格中的若干列

代码如下

df[["name","note"]]

output

name  note
0   John    92
1   Jane    94
2  Emily    87
3   Lisa    82
4   Matt    90

再筛选出若干行

我们基于上面搜索出的结果之上,再筛选出若干行,代码如下

df.loc[:3, ["name","note"]]

output

name  note
0   John    92
1   Jane    94
2  Emily    87
3   Lisa    82

根据索引来过滤数据

这里我们用到的是iloc方法,代码如下

df.iloc[:3, 2]

output

0    Electrical engineer
1    Mechanical engineer
2         Data scientist

通过比较运算符来筛选数据

df[df.note > 90]

output

name  note           profession date_of_birth group
0  John    92  Electrical engineer    1998-11-01     A
1  Jane    94  Mechanical engineer    2002-08-14     B

dt属性接口

dt属性接口是用于处理时间类型的数据的,当然首先我们需要将字符串类型的数据,或者其他类型的数据转换成事件类型的数据,然后再处理,代码如下

df.date_of_birth = df.date_of_birth.astype("datetime64[ns]")
df[df.date_of_birth.dt.month==11]

output

name  note           profession date_of_birth group
0  John    92  Electrical engineer    1998-11-01     A

或者我们也可以

df[df.date_of_birth.dt.year > 2000]

output

name  note           profession date_of_birth group
1  Jane    94  Mechanical engineer    2002-08-14     B
3  Lisa    82           Accountant    2002-10-24     A
4  Matt    90              Athlete    2004-04-05     C

多个条件交集过滤数据

当我们遇上多个条件,并且是交集的情况下过滤数据时,代码应该这么来写

df[(df.date_of_birth.dt.year > 2000) &  
   (df.profession.str.contains("engineer"))]

output

name  note           profession date_of_birth group
1  Jane    94  Mechanical engineer    2002-08-14     B

多个条件并集筛选数据

当多个条件是以并集的方式来过滤数据的时候,代码如下

df[(df.note > 90) | (df.profession=="Data scientist")]

output

name  note           profession date_of_birth group
0   John    92  Electrical engineer    1998-11-01     A
1   Jane    94  Mechanical engineer    2002-08-14     B
2  Emily    87       Data scientist    1996-01-12     B

Query方法过滤数据

Pandas当中的query方法也可以对数据进行过滤,我们将过滤的条件输入

df.query("note > 90")

output

name  note           profession date_of_birth group
0  John    92  Electrical engineer    1998-11-01     A
1  Jane    94  Mechanical engineer    2002-08-14     B

又或者是

df.query("group=='A' and note > 89")

output

name  note           profession date_of_birth group
0  John    92  Electrical engineer    1998-11-01     A

nsmallest方法过滤数据

pandas当中的nsmallest以及nlargest方法是用来找到数据集当中最大、最小的若干数据,代码如下

df.nsmallest(2, "note")

output

name  note      profession date_of_birth group
3   Lisa    82      Accountant    2002-10-24     A
2  Emily    87  Data scientist    1996-01-12     B
df.nlargest(2, "note")

output

name  note           profession date_of_birth group
1  Jane    94  Mechanical engineer    2002-08-14     B
0  John    92  Electrical engineer    1998-11-01     A

isna()方法

isna()方法功能在于过滤出那些是空值的数据,首先我们将表格当中的某些数据设置成空值

df.loc[0, "profession"] = np.nan
df[df.profession.isna()]

output

name  note profession date_of_birth group
0  John    92        NaN    1998-11-01     A

notna()方法

notna()方法上面的isna()方法正好相反的功能在于过滤出那些不是空值的数据,代码如下

df[df.profession.notna()]

output

name  note           profession date_of_birth group
1   Jane    94  Mechanical engineer    2002-08-14     B
2  Emily    87       Data scientist    1996-01-12     B
3   Lisa    82           Accountant    2002-10-24     A
4   Matt    90              Athlete    2004-04-05     C

assign方法

pandas当中的assign方法作用是直接向数据集当中来添加一列

df_1 = df.assign(score=np.random.randint(0,100,size=5))
df_1

output

name  note           profession date_of_birth group  score
0   John    92  Electrical engineer    1998-11-01     A     19
1   Jane    94  Mechanical engineer    2002-08-14     B     84
2  Emily    87       Data scientist    1996-01-12     B     68
3   Lisa    82           Accountant    2002-10-24     A     70
4   Matt    90              Athlete    2004-04-05     C     39

explode方法

explode()方法直译的话,是爆炸的意思,我们经常会遇到这样的数据集

Name            Hobby
0   吕布  [打篮球, 玩游戏, 喝奶茶]
1   貂蝉       [敲代码, 看电影]
2   赵云        [听音乐, 健身]

Hobby列当中的每行数据都以列表的形式集中到了一起,而explode()方法则是将这些集中到一起的数据拆开来,代码如下

Name Hobby
0   吕布   打篮球
0   吕布   玩游戏
0   吕布   喝奶茶
1   貂蝉   敲代码
1   貂蝉   看电影
2   赵云   听音乐
2   赵云    健身

当然我们会展开来之后,数据会存在重复的情况,

df.explode('Hobby').drop_duplicates().reset_index(drop=True)

output

Name Hobby
0   吕布   打篮球
1   吕布   玩游戏
2   吕布   喝奶茶
3   貂蝉   敲代码
4   貂蝉   看电影
5   赵云   听音乐
6   赵云    健身

好了,这就是今天分享的内容,一键三连走起呀~

觉得还不错就给我一个小小的鼓励吧!
pandas数据处理与分析实战 01批量读取指定路径下文件,将需要合并相同格式的csv文件放入一个文件夹内,直接调用即可。涉及企业内部数据数据不公开,欢迎评论指正或私聊。02数据准备,使用merge内连接表格,匹配数据。03根据业务需求,筛选并分组计算数据。sheet2数据展示(客户名称已码)sheet1数据展示。sheet3数据展示。sheet4数据展示。sheet5数据展示。 阅读详情

相关推荐

干货 |《Python十大基础专题》《247个Python综合案例》《Pandas 20页学习笔记》

如今书籍汗牛充栋,如何从零、循序渐进地掌握Python技术栈,成为很多读者朋友们关心的问题。最近,特意按照Python技术栈的学习逻辑,把它划分为六个阶段,并且给出每个阶段的学习资料。 六个阶段: 第一阶段:打牢 Python基础,这一阶段,我推荐大家的参考材料《Python十大基础专题》: 第二阶段:Python语言进阶,这一阶段,我推荐大家的参考材料《90个进阶案例》: 第三阶段:Python上手实操,这一阶段,我推荐大家的参考材料《247个Pyt...

qq_40558336的博客 343

20Pandas 数据实战案例干货多多

作者 |俊欣来源 | 关于数据分析与可视化今天我们讲一下pandas当中的数据过滤内容,小编之前也写过也一篇相类似的文章,但是是基于文本数据的过滤,大家有兴趣也可以去查阅一下。下面小编会...

AI科技大本营 4905

Python数据处理:pandas实战

Python中,pandas是一个非常常用的库,用于进行数据处理和分析。在pandas中,可以使用loc和iloc对DataFrame数据进行选择。loc用于按列标签选择数据,iloc用于按位置选择数据。首先,我们需要读取数据并将其转换为pandas中的DataFrame格式。在pandas中,可以使用groupby方法对数据进行分组,并计算每组的统计信息。通过这些基本操作,我们可以处理大量数据并进行相应的分析和统计。对于大量数据,往往需要对数据进行排序以便更好的分析。过滤数据数据处理的重要部分。

qq_37934722的博客 622

肝了3天,整理了90个Pandas案例,强烈建议收藏!

文章很长,高低要忍一下,如果忍不了,那就收藏吧,总会用到的为了方便查找,先提供目录,一步定位!如何使用列表和字典创建 Series使用列表创建 Series使用 name 参数创建 Ser...

公众号:Python研究者 2495

Python20Pandas数据实战案例干货多多

今天我们讲一下pandas当中的数据过滤内容,小编之前也写过也一篇相类似的文章,但是是基于文本数据的过滤,大家有兴趣也可以去查阅一下。下面小编会给出大概20案例来详细说明数据过滤的方法,...

fengdu78的博客 2201

20+Pandas文本数据处理,干货多多

今天我们来谈论一下pandas库当中文本数据的操作,希望大家再看完本篇文章之后会有不少的收获,我们大致会讲创建一个包含文本数据的DataFrame常用处理文本数据的方法的总结正则表达式与D...

weixin_43373042的博客 309

python 20个常用运用Pandas脚本(助力快速上手数据处理)

假设我们有一个关于电商销售的数据表,包含以下列:订单ID, 产品名称, 类别, 销售额, 数量, 和 日期。

software_test010的博客 850

pandas 提取大于某值的数据_干货 | Pandas进阶修炼120题!别再说Pandas很南了!

本文为你介绍Pandas基础、Pandas数据处理、金融数据处理等方面的一些习题。Pandas 是基于 NumPy 的一种数据处理工具,该工具为了解决数据分析任务而创建。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的函数和方法。其中包含Pandas基础、Pandas数据处理、金融数据处理、当Pandas遇上NumPy、补充内容 5个部分。在深度和广度上,...

weixin_31845113的博客 1万+

20+Pandas文本数据处理,干货多多!

今天我们来谈论一下pandas库当中文本数据的操作,希望大家再看完本篇文章之后会有不少的收获,我们大致会讲创建一个包含文本数据的DataFrame常用处理文本数据的方法的总结正则表达式与D...

sinat_32849897的博客 149

Pandas进阶修炼,先来20道题热身再说!

“ 在『Pandas进阶修炼』系列中,我们将对pandas中常用的操作以习题的形式发布。从读取数据到高级操作全部包含。如果你是新手,可以通过本系列完整学习使用pandas进行数据处理的各...

cainiao_python的博客 408

十个Pandas高效数据处理与分析应用实例(收藏版)

PandasPython编程语言中的一个开源数据分析数据处理库。它提供了数据结构和数据操作工具,专为处理数表或异构数据设计。Pandas的核心数据结构是DataFrame和Series,这使得数据处理变得非常直观和高效。

全糖冲击的博客 4010

Pandas速成指南:60个案例搞定数据分析

本文介绍pandas常用的60个小案例,通过这些案例可以帮助大家快速入门pandas

m0_75067629的博客 1428

不容忽视的30个数据可视化小技巧

公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~ 写过很多关于Pandas的文章,本文开展了一个简单的综合使用,主要分为: 如何自行模拟数据 多种数据处理方式 数据统计与可视化 用户RFM模型 用户复购周期 构建数据案例中用的数据是小编自行模拟的,主要包含两个数据:订单数据和水果信息数据,并且会将两份数据合并 import pandas as pd import numpy as np import random from datetime import * imp.

尤尔小屋 1728

【精华总结】全文4000字、20案例详解Pandas当中的数据统计分析与排序

大家好,我是俊欣,本篇文章应该算得上是2022年的第一篇原创了,抱歉,元旦期间小编有点偷懒。今天小编来给大家讲一下Pandas模块当中的数据统计与排序,说到具体的就是value_count...

weixin_43373042的博客 811

22个案例详解Pandas数据分析/预处理时的实用技巧,超简单

作者 | 俊欣来源 |关于数据分析与可视化今天小编打算来讲一讲数据分析方面的内容,整理和总结一下Pandas数据预处理和数据分析方面的硬核干货,我们大致会说Pandas计算交叉列表Pa...

AI科技大本营 3416

Pandas数据处理与分析教程:从基础到实战

本文详细介绍了Python数据处理库Pandas的各个方面,包括基本数据结构、数据读写、数据操作、数据聚合与分组、数据可视化等内容。通过学习本教程,您将掌握Pandas数据分析数据科学领域的应用,以及如何使用Pandas分析销售数据实战案例。阅读本文可以帮助您快速入门和提升Pandas的应用能力。

全栈若城,专注知识分享 3971

Pandas实战100例-专栏介绍

PandasPython数据科学的心脏,是探索和分析数据世界的强大工具。想象一下,用几行代码就能洞察庞大数据集的秘密,无论是金融市场趋势还是社交媒体动态。 通过Pandas,你可以轻松地整理、清洗、转换数据,将杂乱无章的数据变成有意义的洞察。它的灵活性和效率是数据科学家和分析师的必备利器。 学习Pandas,就是开启数据探索之旅的第一步,让数据讲述背后的故事。你准备好了吗?加入Pandas的世界,成为数据的大师。

若北辰 2659
上一篇: 使用Plotly绘制常见5种动态交互式图表
下一篇: 如何使用机器学习神器sklearn做特征工程?
Wang_AI
博客等级 码龄11年 921粉丝 162原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值