pandas高级操作--复杂查询

pandas高级操作

  • 一、复杂查询
    • 1.1 逻辑筛选数据
    • 1.2 函数筛选
    • 1.3 isin()函数
    • 1.4 查询df.query()
    • 1.5 df.filter()对行名和列名进行筛选

一、复杂查询

1.1 逻辑筛选数据

以下是切片([])的一些逻辑筛选示例:

df[df['Q1'] == 8]    # Q1等于8
df[~(df['Q1'] == 8)]    # 不等于8
df[df.Q1 > df.Q2]    

以下是.loc[]的一些实例:

# 表达式与切片一致
df.loc[df['Q1'] > 90, 'Q1':]    # Q1大于90,显示Q1及其后所有列
df.loc[(df.Q1 > 80) & (df.Q2 < 15)]
df.loc[(df.Q1 > 90) | (df.Q2 < 90)]

需要注意的是,在进行或(|)、与(&)、非(~)运算时,各个独立逻辑表达式需要用括号括起来。

1.2 函数筛选

可以在表达式处使用lambda函数,默认变量是其操作的对象。如果操作的对象是一个DataFrame,那么变量就是这个DataFrame;如果是一个Series,那么就是这个Series。以下的例子中,s就是指df.Q1这个Series。

# 查询最大索引的值
df.Q1[lambda s: max(s.index)]    # 值为21
# 计算最大值
max(df.Q1.index)    # 99
df.Q1[df.index==99]

下面是一些示例:

df[lambda df: df['Q1'] == 8]    # Q1为8的
df.loc[lambda df: df.Q1 == 8, 'Q1':'Q2']    # Q1为8,显示Q1、Q2
df.loc[:, lambda df: df.columns.str.len()==4]

1.3 isin()函数

该函数用于判断数据是否包含指定内容。可以传入一个列表,原数据只需要满足其中一个存在即可;也可以传入一个字典,键为列名,值为需要匹配的值,以实现按列个性化匹配存在的值。

df[df.team.isin(['A', 'B'])]    # 包含A、B两组的
df[df.isin({'team':['C', 'D'], 'Q1':[36, 93]})]

1.4 查询df.query()

df.query(expr)使用布尔表达式查询DataFrame的列,表达式是一个字符串,类似于SQL中的where从句,相当灵活。

df.query('Q1 > Q2 > 90')
df.query('Q1 + Q2 > 180')
df.query('(Q1<50) & (Q2>40) and (Q3>80)')    # &和and效果一样
df.query('team !="C"')
df.query('team not in("E", "A", "B")')

还支持@符号引入变量

a = df.Q1.mean()
df.query('Q1 > @a+40')    # 大于平均分40分
df.query('Q1 > `Q2`+@a')

df.eval()与df.query()类似,也可以用于表达式筛选:

df[df.eval("Q1 > Q2 > 90")]

1.5 df.filter()对行名和列名进行筛选

df.filter()支持对行名和列名进行筛选,支持模糊匹配,正则表达式。

df.filter(items=['Q1', 'Q2'])    # 选择两列
df.filter(regex='Q', axis=1)    # 列名包含Q的列
df.filter(regex='m$', axis=1)     # 以m结尾的列
df.filter(regex='r$', axis=0)    # 行索引以r结尾的行
df.filter(regex='^R', axis=0).filter(like='Q', axis=1)    # 行索引以R开头,列索引名中有Q的

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

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

相关文章

Python进行excel处理-01

最近干采购&#xff0c;每个月要对供应商的对账单&#xff0c;对对应的采购订单号和物料编号的价格和数量&#xff0c;是不是和物料管控总表里面的价格数量是不是一致&#xff0c;于是写了一个代码。 从总表里面找到&#xff0c;对账单里对应采购订单和物料编码的数据&#xf…

从代码到洞察:使用API接口深入分析商品详情数据

在电子商务的世界中&#xff0c;商品详情数据是企业做出明智决策的基石。API&#xff08;应用程序编程接口&#xff09;提供了一种强大的方式来获取这些数据&#xff0c;不仅可以简化数据获取过程&#xff0c;还可以为深入分析和业务洞察提供丰富的信息。本文将探讨如何使用API…

5W 1.5KVDC 隔离 宽电压输入 DC/DC 电源模块——TP05DB 系列

TP05DB系列电源模块额定输出功率为5W&#xff0c;应用于2:1及4:1电压输入范围 4.5V-9V、9V-18V、18V-36V、36V-72V、9V-36V和18V-72V&#xff0c;40-160VDC的输入电压环境&#xff0c;输出电压精度可达1%&#xff0c;具有输出过流保护等功能。可广泛应用于通信、铁路、自动化以…

Java毕业设计 基于SpringBoot vue社区智慧养老监护管理平台

Java毕业设计 基于SpringBoot vue社区智慧养老监护管理平台 SpringBoot 社区智慧养老监护管理平台 功能介绍 登录注册 个人中心 修改密码 个人信息 房间信息管理 房间入住信息管理 反馈信息管理 留言管理 老人信息管理 公告管理 物资申请管理 管理员管理 护工管理 体检员管理…

2024-05-08 postgres-火山模型-执行-记录

摘要: 2024-05-08 postgres-火山模型-执行-记录 上下文: 2024-05-08 postgres-调试及分析-记录-CSDN博客 火山模型: 数据流是在查询树上&#xff0c;自上而下进行拉取&#xff0c;由上而下的调用。树本身就表明了数据的流动。每次执行一个元组&#xff0c;也就类似于迭代器的…

[C++][数据结构]AVL树插入的模拟实现

前言 紧接着上一篇文章&#xff0c;我们来模拟实现一下set的底层结构 引入 对于BSTree&#xff0c;虽然可以缩短查找的效率&#xff0c;但如果数据有序它将退化为单支树 我们可以用AVL树来解决这个问题。 概念 AVL树&#xff1a; 它的每个结点的左右子树高度之差的绝对值…

Tuxera NTFS for Mac Mac用户无缝地读写NTFS格式的硬盘和U盘

在数字化时代&#xff0c;数据交换和共享变得日益重要。然而&#xff0c;对于Mac用户来说&#xff0c;与Windows系统之间的文件交换可能会遇到一些挑战。这是因为Mac OS默认不支持Windows常用的NTFS文件系统。幸运的是&#xff0c;Tuxera NTFS for Mac为我们提供了一个优雅的解…

在线知识付费源码系统,教育培训机构的课程顾问要具备啥能力?

做一个培训机构是需要一个优秀的团队&#xff0c;机构是需要有很多不同的岗位组成的&#xff0c;课程顾问就是机构里面很重要的一个岗位&#xff0c;机构想要发展就需要课程顾问工作做的好&#xff0c;那机构课程顾问需要有什么能力&#xff1f; 作为一名合格课程顾问&#xff…

一文盘点 Partisia Blockchain 生态 4 月市场进展

Partisia Blockchain 是一个以高迸发、隐私、高度可互操作性、可拓展为特性的 Layer1 网络。通过将 MPC 技术方案引入到区块链系统中&#xff0c;以零知识证明&#xff08;ZK&#xff09;技术和多方计算&#xff08;MPC&#xff09;为基础&#xff0c;共同保障在不影响网络完整…

【微积分听课笔记】全微分,二元极值,Double Integral

6.6 二元函数的极值_哔哩哔哩_bilibili 此笔记为听课笔记&#xff0c;宋浩老师微积分~ 最近诸事缠身&#xff0c;会有种会不会只做一件事好些。实际上&#xff0c;关键在于动力&#xff0c;我不可能每次都准备充分。动力&#xff0c;分配&#xff0c;这是目前进入大学我正在学…

Jetpack Compose三:主题和基础控件的使用

设置主题 与Android View的主题定义方式不同&#xff0c;Jetpack Compose中的主题由许多较低级别的结构体和相关API组成&#xff0c;它们包括颜色、排版和形状属性。 Theme.kt控制工程的主题&#xff0c;它是一个可组合的Compose函数 最后主题函数ComposeStudyTheme的相关设置…

分布式数据库有哪几种

数据库的发展从早期的单机数据库&#xff0c;到现在的分布式数据库。在单机数据库时代&#xff0c;所有的数据都存储在单机中&#xff0c;随着计算机技术的发展&#xff0c;开始出现了多台计算机联合处理数据的需求&#xff0c;从而诞生了分布式数据库。 分布式数据库是将多个…

Spring中FactoryBean的作用和实现原理

Spring中FactoryBean的作用和实现原理 BeanFactory与FactoryBean&#xff0c;相信很多刚翻看Spring源码的同学跟我一样很好奇这俩货怎么长得这么像&#xff0c;分别都是干啥用的。 BeanFactory是Spring中Bean工厂的顶层接口&#xff0c;也是我们常说的SpringIOC容器&#xff…

Pytorch学习笔记——卷积操作

一、认识卷积操作 卷积操作是一种数学运算&#xff0c;它涉及两个函数&#xff1a;输入函数&#xff08;通常是图像&#xff09;和卷积核&#xff08;也称为滤波器或特征检测器&#xff09;。卷积核在输入函数上滑动&#xff0c;将核中的每个元素与其覆盖的输入函数区域中的对应…

Windows基于WSL2安装Kali-linux

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、kali-linux是什么&#xff1f;二、简单使用1.下载2.打开1.通过应用列表2.通过Terminal 三、安装图形界面1.下载2.打开 四、重头戏总结 前言 kali-linux大家…

什么牌子的洗地机质量最好?四款耐用高分产品推荐

洗地机具备了吸尘、擦拭、除菌等多种功能&#xff0c;可以一次完成多种清洁任务&#xff0c;帮助用户更高效地保持家居整洁&#xff0c;节省时间和精力&#xff0c;备受人们的喜爱。但是怎么挑选到优质的洗地机一直是大家关注的问题。今天&#xff0c;笔者将结合自己在家电行业…

EMAP的Root工程及其他工具

首先右击项目导航&#xff0c;新建EMAP系统配置 上方辅助工具功能&#xff1a; 1 2 3 4 5 6 7 8 9 10 查看重复数据模型:显示为放大镜标识&#xff0c;可以显示所有应用中相同…

图算法必备指南:《图算法:行业应用与实践》全面解读,解锁主流图算法奥秘!

《图算法&#xff1a;行业应用与实践》于近日正式与读者见面了&#xff01; 该书详解6大类20余种经典的图算法的原理、复杂度、参数及应用&#xff0c;旨在帮助读者在分析和处理各种复杂的数据关系时能更好地得其法、善其事、尽其能。 全书共分为10章&#xff1a; 第1~3章主要…

python笔记:dataclass

1 引子&#xff1a;其他类似实现方法的局限性 假设我们现在需要实现这样的内容&#xff1a; nameChinaarea960population140967 1.1 tuple/list country1_tuple(China,960,140967) country1_tuple[0] #China 缺点&#xff1a;需要记住各个属性是list/tuple第几位的属性&am…

[YOLOv8] 用YOLOv8实现指针式圆形仪表智能读数(二)

最近研究了一个项目&#xff0c;利用python代码实现指针式圆形仪表的自动读数&#xff0c;并将读数结果进行输出&#xff0c;若需要完整数据集和源代码可以私信。 目录 &#x1f353;&#x1f353;1.yolov8实现圆盘形仪表智能读数 &#x1f64b;&#x1f64b;2.表盘指针语义…