pandas|判断是否包含|contains|isin

news2024/9/24 19:24:51

文章目录

  • 1. 方法简介
    • 1.1 pandas.Series.str.contains
    • 1.2 pandas.DataFrame.isin
  • 2. 示例1
  • 3. 示例2
  • 4. 相关文章
    • (1) pandas分组聚合|agg|transform|apply
    • (2) 缺省值判断 pd.isnull, pd.isna, pd.notna, pd.notnull, np.isnan, math.isnan 区别
    • (3) pandas中DataFrame字典互转
    • (4) pandas.concat实现DataFrame竖着拼接、横着拼接
    • (5) pandas|找出某列最大值的所在的行
    • (6) DataFrame——指定位置增加删除一行一列
    • (7) AttributeError: module ‘pandas‘ has no attribute ‘isna‘
    • (8) pandas--Series.str--字符串处理
    • (9) list、ndarry、Series、DataFrame的创建、索引和选取
    • (10) Series和DataFrame复合索引的创建和取值
    • (11) pd.notnull
    • (12) Pandas|DataFrame| 处理DataFrame中的inf值
    • (13) 由字典dictionary或列表list创建dataframe
    • (14) pandas|DataFrame排序及分组排序
    • (15) Pandas|DataFrame| DataFrame中的nan值处理
    • (16) pandas|判断是否包含|contains|isin

1. 方法简介

1.1 pandas.Series.str.contains

str.contains
Series.str.contains(pat,case = True,flags = 0,na = nan,regex = True)

  • 函数作用
    测试pattern或regex是否包含在Series或Index的字符串中。
    返回布尔值系列或索引,具体取决于给定模式或正则表达式是否包含在系列或索引的字符串中。
  • pat : str类型
    字符序列或正则表达式。
  • case : bool,默认为True
    如果为True,区分大小写。
  • flags : int,默认为0(无标志)
    标志传递到re模块,例如re.IGNORECASE。
  • na : 默认NaN
    填写缺失值的值。
    na = True 就表示把有NAN的转换为布尔值True
    na = False 就表示把有NAN的转换为布尔值False
  • regex : bool,默认为True
    如果为True,则假定pat是正则表达式。
    如果为False,则将pat视为文字字符串。
  • 返回:
    布尔值的系列或索引
    布尔值的Series或Index,指示给定模式是否包含在Series或Index的每个元素的字符串中。

1.2 pandas.DataFrame.isin

pd.isin

  • 函数作用
    Pandas isin()方法用于过滤数据帧。isin()方法有助于选择在特定列中具有特定(或多个)值的行。
  • 用法:DataFrame.isin(values)
  • 参数:
    values:Iterable,Series,List,Tuple,DataFrame或字典以检入调用方的Series /Data Frame。
  • 返回类型:维度布尔值的DataFrame。

2. 示例1

# Returning a Series of booleans using only a literal pattern.
s1 = pd.Series(['Mouse', 'dog', 'house and parrot', '23', np.nan])
s1.str.contains('og', regex=False)
0    False
1     True
2    False
3    False
4      NaN
dtype: object
#Returning an Index of booleans using only a literal pattern.
ind = pd.Index(['Mouse', 'dog', 'house and parrot', '23.0', np.nan])
ind.str.contains('23', regex=False)
Index([False, False, False, True, nan], dtype='object')
# case区分大小写,regex使用正则
s1.str.contains('oG', case=True, regex=True)
0    False
1    False
2    False
3    False
4      NaN
dtype: object
# nan值判定为False
s1.str.contains('og', na=False, regex=True)
0    False
1     True
2    False
3    False
4    False
dtype: bool
# 使用正则
s1.str.contains('house|dog', regex=True)
0    False
1     True
2     True
3    False
4      NaN
dtype: object
# Ignoring case sensitivity using flags with regex.
import re
s1.str.contains('PARROT', flags=re.IGNORECASE, regex=True)
0    False
1    False
2     True
3    False
4      NaN
dtype: object

3. 示例2

df = pd.DataFrame({'name': ['悟空','唐僧','八戒','沙僧','白龙马'], 
                   'age': [1000,33,800,700,500],
                  '兵器': ['金箍棒',np.nan, '九齿钉耙','降妖宝杖','龙泉宝剑'],
                  '力量':[100.0, 10.0, 60.0, 50.0, np.nan]}, 
                  index=['a', 'b', 'c', 'd','e'])
df
nameage兵器力量
a悟空1000金箍棒100.0
b唐僧33NaN10.0
c八戒800九齿钉耙60.0
d沙僧700降妖宝杖50.0
e白龙马500龙泉宝剑NaN
# 当值为列表时,检查DataFrame中的每个值是否都存在于列表中
df.isin([1000, 33])
nameage兵器力量
aFalseTrueFalseFalse
bFalseTrueFalseFalse
cFalseFalseFalseFalse
dFalseFalseFalseFalse
eFalseFalseFalseFalse
~df.isin([1000, 33])
nameage兵器力量
aTrueFalseTrueTrue
bTrueFalseTrueTrue
cTrueTrueTrueTrue
dTrueTrueTrueTrue
eTrueTrueTrueTrue
# 当值是dict时,我们可以分别传递值来检查每列
df.isin({'兵器': ['金箍棒', '九齿钉耙']})
nameage兵器力量
aFalseFalseTrueFalse
bFalseFalseFalseFalse
cFalseFalseTrueFalse
dFalseFalseFalseFalse
eFalseFalseFalseFalse
# 当值为Series或DataFrame时,索引和列必须匹配。
other = pd.DataFrame({'name': ['悟空', '-'], 'age': [1000, 33], '兵器': ['金箍棒', '-'], '力量': [100.0, 10.0]}, index=['a', 'b'])
df.isin(other)
nameage兵器力量
aTrueTrueTrueTrue
bFalseTrueFalseTrue
cFalseFalseFalseFalse
dFalseFalseFalseFalse
eFalseFalseFalseFalse
names = ['悟空', '八戒', '沙僧']
names = '|'.join(names)
names
'悟空|八戒|沙僧'
df['name'].str.contains(names, regex=True)
a     True
b    False
c     True
d     True
e    False
Name: name, dtype: bool
df[df['name'].str.contains(names, regex=True)]
nameage兵器力量
a悟空1000金箍棒100.0
c八戒800九齿钉耙60.0
d沙僧700降妖宝杖50.0

4. 相关文章

(1) pandas分组聚合|agg|transform|apply

pandas分组聚合|agg|transform|apply

(2) 缺省值判断 pd.isnull, pd.isna, pd.notna, pd.notnull, np.isnan, math.isnan 区别

缺省值判断 pd.isnull, pd.isna, pd.notna, pd.notnull, np.isnan, math.isnan 区别

(3) pandas中DataFrame字典互转

pandas中DataFrame字典互转

(4) pandas.concat实现DataFrame竖着拼接、横着拼接

pandas.concat实现DataFrame竖着拼接、横着拼接

(5) pandas|找出某列最大值的所在的行

pandas|找出某列最大值的所在的行

(6) DataFrame——指定位置增加删除一行一列

DataFrame——指定位置增加删除一行一列

(7) AttributeError: module ‘pandas‘ has no attribute ‘isna‘

AttributeError: module ‘pandas‘ has no attribute ‘isna‘

(8) pandas–Series.str–字符串处理

pandas–Series.str–字符串处理

(9) list、ndarry、Series、DataFrame的创建、索引和选取

list、ndarry、Series、DataFrame的创建、索引和选取

(10) Series和DataFrame复合索引的创建和取值

Series和DataFrame复合索引的创建和取值

(11) pd.notnull

pd.notnull

(12) Pandas|DataFrame| 处理DataFrame中的inf值

Pandas|DataFrame| 处理DataFrame中的inf值

(13) 由字典dictionary或列表list创建dataframe

由字典dictionary或列表list创建dataframe

(14) pandas|DataFrame排序及分组排序

pandas|DataFrame排序及分组排序

(15) Pandas|DataFrame| DataFrame中的nan值处理

Pandas|DataFrame| DataFrame中的nan值处理

(16) pandas|判断是否包含|contains|isin

pandas|判断是否包含|contains|isin

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/958246.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识Java 4-1 初始化与清理

目录 通过构造器进行初始化 无参构造器 方法的重载 使用基本类型的重载 this关键字 在构造器中调用构造器 static的含义 成员初始化 初始化顺序 静态数据的初始化 显式的静态初始化(静态块) 非静态实例的初始化 数组初始化 动态数组的创建 …

kubernetes进阶 (一) 环境搭建

我是基于一台centos7.6的腾讯云主机进行操作的,配置为4C8G,之前的文档自己试着搭建发现有问题了,这里重新整理下笔记,集群版本选择1.22.2(一年前搭的)用的还不错 清理环境 之前我的环境可能装过docker或者什…

WIFI与BT的PCB布局布线注意事项

1、模块整体布局时,WIFI模组要尽量远离DDR、HDMI、USB、LCD电路以及喇叭等易干扰模块或连接座; 2、晶体电路布局需要优先考虑,布局时应与芯片在同一层并尽量靠近放置以避免打过孔,晶体走线尽可能的短,远离干扰源&…

【附安装包】EViews 12.0安装教程

---------------------------END--------------------------- 题外话 当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下. 感兴趣的小伙伴,赠送全套Pyt…

Vue框架--理解MVVM

我们知道,MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。我们看看MVVM的模型架构,如下所示: 架构理解与实例

Matlab论文插图绘制模板第111期—带线标记的图

本期分享的是带线标记注释的图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载。有需要的朋友可以关注同名公号【阿昆的科研日常】,后台回复关键词【绘图桶】查看加入方式。 模板中最…

Codeforces Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)

解题情况 3of 9 A B C 日期 9.1 目录 A. Increasing and Decreasing 题目分析: 代码: B. Swap and Reverse 题目分析: 代码: C. Divisor Chain A. Increasing and Decreasing 题目分析: x->y递增&#xf…

keepalived 主备都存在vip, keepalived主备跨网段配置;keepalived主备服务器不在同一个网段怎么配置

keepalived 主备都有vip问题;主备服务器不在同一个网段怎么配置 主机:128.192.10.10 备机:128.192.11.11 备机:128.192.22.22 # keepalived的配置文件增加如下配置即可实现 # 主机:128.192.10.10 vrrp_instance VI_1 {…

【Latex】使用技能站:(三)使用 Vscode 配置 LaTeX

使用 Vscode 配置 LaTeX 引言1 安装texlive2 安装vscode2.1 插件安装2.2 配置 3 安装SumatraPdf3.1 vscode配置3.2 配置反向搜索 引言 安装texlive 安装vscode 安装SumatraPdf 1 安装texlive 在线LaTeX编辑器:https://www.overleaf.com TeX Live下载:h…

layui数据表格实现表格中嵌套表格,并且可以折叠展开

效果: 思路: 1、最外层的表格先渲染,在done回调中向每个tr后面插入一个用来嵌套子级表格的tr。 tr的class和table的id需要用索引 i 关联 //向每一行tr后面追加显示子table的trlet trEles $(".layui-table-view[lay-idlist] tbody tr&…

openGauss学习笔记-53 openGauss 高级特性-Ustore

文章目录 openGauss学习笔记-53 openGauss 高级特性-Ustore53.1 设计原理53.2 核心优势53.3 使用指导 openGauss学习笔记-53 openGauss 高级特性-Ustore Ustore 存储引擎,又名 In-place Update 存储引擎(原地更新),是 openGauss …

Vite打包性能优化及填坑

最近在使用 Vite4.0 构建一个中型前端项目的过程中,遇到了一些坑,也做了一些项目在构建生产环境时的优化,在这里做一个记录,以便后期查阅。(完整配置在后面) 上面是dist文件夹的截图,里面的内容已经有30mb了&#xff…

开学季ipad手写笔什么牌子好?第三方电容笔推荐

自从ipad之类的平板电脑上出现了电容笔,电容笔就成功的取代了我们的手指,大大加快了我们的写作速度。不过,由于苹果pencil自带的先进芯片,导致其售价一直很高,给很多人,特别是学生,造成了很大的…

Python(Web时代)—— Django操作现有数据库表

Mysql操作 前言 在实际开发过程中,我们经常会遇到数据库表已经建立好了,现在只需要开发项目功能,操作已有数据库表的情况。 Django为我们提供了inspecdb的方法。他的作用即是对已经存在的数据库表来反向映射结构到models.py中. 操作 第一…

前端监听SDK(上报埋点数据)

1、使用方式 <head><script>window.pineapple || (pineapple {});pineapple.param {"src": "http://127.0.0.1:3001/pa.gif","token": "dsadasd2323dsad23dsada",};</script><script src"js/pineapple.j…

sql各种注入案例

目录 1.报错注入七大常用函数 1)ST_LatFromGeoHash (mysql>5.7.x) 2)ST_LongFromGeoHash &#xff08;mysql>5.7.x&#xff09; 3)GTID (MySQL > 5.6.X - 显错<200) 3.1 GTID 3.2 函数详解 3.3 注入过程( payload ) 4)ST_Pointfromgeohash (mysql>5.…

如何截取视频中的一段视频?分享几种视频分割方法

当处理长视频时&#xff0c;视频分割可以使您更加高效。如果您只需要处理其中的一部分&#xff0c;而不是整个视频&#xff0c;那么分割视频可以使您更容易找到需要处理的部分。而且&#xff0c;分割视频还可以使您更容易在不同的项目之间重复使用视频片段。教大家几种简单的视…

前端面试中Vue的有经典面试题一

1. 谈谈你对MVVM开发模式的理解 MVVM分为Model、View、ViewModel三者。 Model&#xff1a;代表数据模型&#xff0c;数据和业务逻辑都在Model层中定义&#xff1b; View&#xff1a;代表UI视图&#xff0c;负责数据的展示&#xff1b; ViewModel&#xff1a;负责监听Model中…

Argument of type {****} is not assignable to parameter of type ‘never‘.ts(2345)

在日常开发中配置eslintTypescript之后&#xff0c;会出先各种校验报错提示&#xff0c;今天在开发过程中遇到ts2345报错&#xff0c;出错场景发生在数组push一个Object对象报错。 const obj { title: , children: [] }; const currentObj obj.children; 其实就是obj.chilr…