您当前的位置:首页 > 互联网百科 > 大数据

3000字详解Pandas数据查询,建议收藏

时间:2021-12-30 10:33:24  来源:  作者:CDA数据分析师

作者:俊欣

来源:关于数据分析与可视化

大家好,又是新的一周,也是2021年的最后一周,今天小编来和大家说一说怎么从DataFrame数据集中筛选符合指定条件的数据,希望会对读者朋友有所帮助。

导入数据集和模块

我们先导入pandas模块,并且读取数据,代码如下

import pandas as pd
df = pd.read_csv("netflix_titles.csv")
df.head()

根据文本内容来筛选

首先我们可以根据文本内容直接来筛选,返回的是True如果文本内容是相匹配的,False如果文本内容是不匹配的,代码如下

mask = df['type'].isin(['TV Show'])
mask.head()

output

0    False
1     True
2     True
3     True
4     True
Name: type, dtype: bool

然后我们将这个mask作用到整个数据集当中,返回的则是满足与True条件的数据

df[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

当然我们也可以和.loc方法来相结合,只挑选少数的几个指定的列名,代码如下

df.loc[mask, ['title','country','duration']].head()

output

                   title       country   duration
1          Blood & Water  South Africa  2 Seasons
2              Ganglands           NaN   1 Season
3  Jailbirds New Orleans           NaN   1 Season
4           Kota Factory         India  2 Seasons
5          Midnight Mass           NaN   1 Season

当然要是我们所要筛选的文本内容并不仅仅只有1个,就可以这么来操作,代码如下

mask = df['type'].isin(['Movie','TV Show'])

结果返回的是True,要是文本内容全部都匹配,要是出现一个不匹配的现象则返回的是False

根据关键字来筛选

我们可以根据某个关键字来筛选数据,数据集当中的listed-in包含的是每部电影的种类,当然很多电影并不只有一个种类,而是同时涉及到很多个种类,例如某一部电影既有“科幻”元素,也有“爱情”元素同时还包含了部分“动作片”的元素。

我们按照某个关键字来筛选,例如筛选出包含了“horror”这个关键字的影片,代码如下

mask = df['listed_in'].str.contains('horror', case=False, na=False)

其中的case=False表明的是忽略字母的大小写问题,na=False表明的是对于缺失值返回的是False,

df[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

而要是文本数据当中包含了一些特殊符号,例如+、^以及=等符号时,我们可以将regex参数设置成False(默认的是True),这样就不会被当做是正则表达式的符号,代码如下

df['a'].str.contains('^', regex=False)
#或者是
df['a'].str.contains('^')

根据多个关键字来筛选

当关键字不仅仅只有一个的时候,就可以这么来操作

pattern = 'horror|stand-up'
mask = df['listed_in'].str.contains(pattern, case=False, na=False)
df[mask].sample(5)

output

3000字详解Pandas数据查询,建议收藏

 

我们用了|来表示“或”的意思,将电影类别包含“horror”或者是“stand-up”这两类的电影筛选出来

除此之外,我们还可以这么来做

mask1 = df['listed_in'].str.contains("horror", case=False)
mask2 = df['listed_in'].str.contains("stand-up", case=False)
df[mask1 | mask2].sample(5)

出来的结果和上述一样,只不过过程可能稍加繁琐,除了|表示的是“或”之外,也有表示的是和,也就是&标识符,意味着条件全部都需要满足即可,例如

mask1 = (df['listed_in'].str.contains('horror', case=False, na=False))
mask2 = (df['type'].isin(['TV Show']))
df[mask1 & mask2].head(3)

output

3000字详解Pandas数据查询,建议收藏

 

我们可以添加多个条件在其中,多个条件同时满足,例如

mask1 = df['rating'].str.contains('tv', case=False, na=False)
mask2 = df['listed_in'].str.contains('tv', case=False, na=False)
mask3 = df['type'].str.contains('tv', case=False, na=False)
df[mask1 & mask2 & mask3].head()

output

3000字详解Pandas数据查询,建议收藏

 

正则表达式在pandas筛选数据中的应用

我们同时也可以将正则表达式应用在如下的数据筛选当中,例如str.contains('str1.*str2')代表的是文本数据是否以上面的顺序呈现,

pattern = 'states.*mexico'
mask = data['country'].str.contains(pattern, case=False, na=False)
data[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

其中.*在正则表达式当中表示匹配除换行符之外的所有字符,我们需要筛选出来包含states以及mexico结尾的文本数据,我们再来看下面的例子

pattern = 'states.*mexico|mexico.*states'
mask = data['country'].str.contains(pattern, case=False, na=False)
data[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

我们筛选出来的文本数据满足两个条件当中的一个即可

lambda方法来筛选文本数据中的应用

有一些筛选数据的方式可能稍显复杂,因此需要lambda方法的介入,例如

cols_to_check = ['rating','listed_in','type']
pattern = 'tv'
mask = data[cols_to_check].Apply(
        lambda col:col.str.contains(
        pattern, na=False, case=False)).all(axis=1)

我们需要在rating、listed_in以及type这三列当中筛选出包含tv的数据,我们来看一下结果如何

df[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

我们再来看下面的这个例子,

mask = df.apply(
    lambda x: str(x['director']) in str(x['cast']), 
    axis=1)

上面的例子当中是来查看director这一列是否被包含在了cast这一列当中,结果如下

df[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

filter方法

我们还可以通过filter方法来筛选文本的数据,例如筛选出列名包含in的数据,代码如下

df.filter(like='in', axis=1).head(5)

output

3000字详解Pandas数据查询,建议收藏

 

当然我们也可以用.loc方法来实现,代码如下

df.loc[:, df.columns.str.contains('in')]

出来的结果和上述的一样

要是我们将axis改成0,就意味着是针对行方向的,例如筛选出行索引中包含Love的影片,代码如下

df_1 = df.set_index('title')
df_1.filter(like='Love', axis=0).head(5)

output

3000字详解Pandas数据查询,建议收藏

 

当然我们也可以通过.loc方法来实现,代码如下

df_1.loc[df_1.index.str.contains('Love'), :].head()

筛选文本数据的其他方法

我们可以使用query方法,例如我们筛选出国家是韩国的影片

df.query('country == "South Korea"').head(5)

output

3000字详解Pandas数据查询,建议收藏

 

例如筛选出影片的添加时间是11月的,代码如下

mask = df["date_added"].str.startswith("Nov")
df[mask].head()

output

3000字详解Pandas数据查询,建议收藏

 

那既然用到了startswith方法,那么就会有endswith方法,例如

df['col_name'].str.endswith('2019')

除此之外还有这些方法可以用来筛选文本数据

  • df['col_name'].str.len()>10
  • df['col_name'].str.isnumeric()
  • df[col_name].str.isupper()
  • df[col_name].str.islower()


Tags:Pandas   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
作者:俊欣来源:关于数据分析与可视化大家好,又是新的一周,也是2021年的最后一周,今天小编来和大家说一说怎么从DataFrame数据集中筛选符合指定条件的数据,希望会对读者朋友有所帮...【详细内容】
2021-12-30  Tags: Pandas  点击:(0)  评论:(0)  加入收藏
1. pandas介绍Pandas是一个强大的数据分析库,它的Series和DataFrame数据结构,使得处理起二维表格数据变得非常简单。基于后面需要对Excel表格数据进行处理,有时候使用Pandas库...【详细内容】
2021-05-18  Tags: Pandas  点击:(208)  评论:(0)  加入收藏
导读:在Python中,进行数据分析的一个主要工具就是Pandas。Pandas是Wes McKinney在大型对冲基金AQR公司工作时开发的,后来该工具开源了,主要由社区进行维护和更新。Pandas具有Num...【详细内容】
2021-04-01  Tags: Pandas  点击:(289)  评论:(0)  加入收藏
示例 Excel 数据我们以下面Excel 为例,演示Python Pandas Excel操作。 pd.read_excel的主要参数 io: excel文档路径。 sheetname : 读取的excel指定的sheet页,若多个则为列表...【详细内容】
2020-12-15  Tags: Pandas  点击:(85)  评论:(0)  加入收藏
Pandas是Python第三方库,提供高性能易用数据类型和分析工具,pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型...【详细内容】
2020-07-28  Tags: Pandas  点击:(77)  评论:(0)  加入收藏
在使用Python进行数据分析时,经常会遇到时间日期格式处理和转换,特别是分析和挖掘与时间相关的数据。Pandas提供了强大的日期数据处理的功能,下面整理了一些使用pandas处理时间...【详细内容】
2020-07-23  Tags: Pandas  点击:(95)  评论:(0)  加入收藏
1. 什么是Series?Series是一种类似于一维数组的对象,与一维数组对象不同的是Series带有标签(索引),通俗来说就是一维带标签(索引)的一维数组。如下图所示:带有索引的一维数组2. 如何...【详细内容】
2020-07-19  Tags: Pandas  点击:(51)  评论:(0)  加入收藏
一. 时间序列基础知识社会经济现象总是随着时间的推移而变迁,呈现动态性。一个或一组变量x(t)进行观测,将在一系列时刻t1、t2、...、tn得到离散数字组成的序列集合,称之为时间...【详细内容】
2020-07-14  Tags: Pandas  点击:(257)  评论:(0)  加入收藏
要求:比较美国和中国星巴克店铺数量数据来源: https://www.kaggle.com/starbucks/store-locations/data在pandas中类似的分组的操作我们有很简单的方式来完成df.groupby(by="c...【详细内容】
2020-06-23  Tags: Pandas  点击:(184)  评论:(0)  加入收藏
Pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。Pandas的名称来自于面板数据(panel data)和python数据分析(data analysis)。panel dat...【详细内容】
2019-09-11  Tags: Pandas  点击:(168)  评论:(0)  加入收藏
▌简易百科推荐
作者:俊欣来源:关于数据分析与可视化大家好,又是新的一周,也是2021年的最后一周,今天小编来和大家说一说怎么从DataFrame数据集中筛选符合指定条件的数据,希望会对读者朋友有所帮...【详细内容】
2021-12-30  CDA数据分析师    Tags:Pandas   点击:(0)  评论:(0)  加入收藏
前言什么是数据脱敏数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护常用脱敏规则替换、重排、加密、截断、掩码良好的数据脱敏实施1、尽...【详细内容】
2021-12-28  linyb极客之路    Tags:数据脱敏   点击:(5)  评论:(0)  加入收藏
张欣安科瑞电气股份有限公司 上海嘉定 201801 摘要:随着电力行业各系统接入,海量数据涌现,如何利用电网信息化中大量数据,对客户需求进行判断分析,服务于营销链条,提升企业市场竞...【详细内容】
2021-12-14  安科瑞张欣    Tags:大数据   点击:(10)  评论:(0)  加入收藏
1、什么是数据分析结合分析工具,运用数据分析思维,分析庞杂数据信息,为业务赋能。 2、数据分析师工作的核心流程:(1)界定问题:明确具体问题是什么;●what 发生了什么(是什么)●why 为...【详细内容】
2021-12-01  逆风北极光    Tags:大数据   点击:(26)  评论:(0)  加入收藏
在实际工作中,我们经常需要整理各个业务部门发来的数据。不仅分散,而且数据量大、格式多。单是从不同地方汇总整理这些原始数据就花了大量的时间,更不用说还要把有效的数据收集...【详细内容】
2021-11-30  百数    Tags:数据   点击:(21)  评论:(0)  加入收藏
数据作为新的生产要素,其蕴含的价值日益凸显,而安全问题却愈发突出。密码技术,是实现数据安全最经济、最有效、最可靠的手段,对数据进行加密,并结合有效的密钥保护手段,可在开放环...【详细内容】
2021-11-26  炼石网络    Tags:数据存储   点击:(17)  评论:(0)  加入收藏
导读:网易大数据平台的底层数据查询引擎,选用了Impala作为OLAP查询引擎,不但支撑了网易大数据的交互式查询与自助分析,还为外部客户提供了商业化的产品与服务。今天将为大家分享...【详细内容】
2021-11-26  DataFunTalk    Tags:大数据   点击:(15)  评论:(0)  加入收藏
导读:数据挖掘是一种发现知识的手段。数据挖掘要求数据分析师通过合理的方法,从数据中获取与挖掘项目相关的知识。作者:赵仁乾 田建中 叶本华 常国珍来源:华章科技数据挖掘是一...【详细内容】
2021-11-23  华章科技  今日头条  Tags:数据挖掘   点击:(22)  评论:(0)  加入收藏
今天再给大家分享一个不错的可视化大屏分析平台模板DataColour。 data-colour 可视化分析平台采用前后端分离模式,后端架构设计采用微服务架构模式。 前端技术:Angularjs、Jq...【详细内容】
2021-11-04  web前端进阶    Tags:DashboardClient   点击:(40)  评论:(0)  加入收藏
在Kubernetes已经成了事实上的容器编排标准之下,微服务的部署变得非常容易。但随着微服务规模的扩大,服务治理带来的挑战也会越来越大。在这样的背景下出现了服务可观测性(obs...【详细内容】
2021-11-02  大数据推荐杂谈    Tags:Prometheus   点击:(40)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条