Python DataFrame取行

文章目录

    • index区间取行
    • 列值区间条件取行
      • (1)列值区间基本表达方式
      • (2)多条件组合表达方式
      • (3)函数条件表达方式
    • datafame接受的几个过滤函数
      • (1)isin函数:
      • (2) query函数:
      • (3) contains函数:
    • 错误条件格式:
      • 示例1:
      • 示例2:

关注根据某列series的值区间,取行问题。
根据行的index区间位置,必须先知道index区间,比较基础
代码准备:
环境平台:Python 3.7.1 -IDLE Shell

>>>import pandas as pd
>>> df = pd.DataFrame({'Name': ['Tom', 'Jim', 'Lily'], 'Age': [20, 18, 22], 'Gender': ['Male', 'Male', 'Female']})

注:该例子数据形式来自:https://www.python100.com/html/116332.html

index区间取行

示例1:提取索引名=‘1’的那一行,返回一个行Series

>>> row = df.loc[1]#按索引名提取,当使用自动生成的索引时,索引名与索引号相同
>>> row
Name       Jim
Age         18
Gender    Male
Name: 1, dtype: object
>>> type(row)
<class 'pandas.core.series.Series'>

注:

df.iloc[:] #按索引(号)提取

示例2:

row = df.loc[0:1]
>>> rowName  Age Gender
0  Tom   20   Male
1  Jim   18   Male
>>> row = df.iloc[0:1]
>>> rowName  Age Gender
0  Tom   20   Male
>>> row = df.loc[0:0]
>>> rowName  Age Gender
0  Tom   20   Male
>>> type(row)
<class 'pandas.core.frame.DataFrame'>

注意:两种提取的区间有区别:按索引(号)提取的区间为:[0,1)

>>> row = df.iloc[0:0]
>>> row
Empty DataFrame
Columns: [Name, Age, Gender]
Index: []

列值区间条件取行

>>> row = df.loc[df['Age'] > 20].iloc[0]['Name']
>>> row
'Lily'
>>> 

上语句的含义是:需要从dataframe:df.loc[df[‘Age’] > 20]中提取索引为0的行Series的‘name’值

(1)列值区间基本表达方式

示例1:


>>> row = df.loc[df['Age'] > 18]
>>> rowName  Age  Gender
0   Tom   20    Male
2  Lily   22  Female
>>> 

注:超过区间,不会产生错误,返回:

>>> row = df.loc[df['Age'] > 23]
>>> row
Empty DataFrame
Columns: [Name, Age, Gender]
Index: []

(2)多条件组合表达方式

示例2:

>>> row = df.loc[(df['Age'] >= 18)&(df['Name'] == 'Lily')]
>>> rowName  Age  Gender
2  Lily   22  Female
>>> 

如果条件为False则返回的dataframe为Empty:

>>> row = df.loc[(df['Age'] >= 18)&(df['Name'] == 'tongzhi')]#'tongzhi'不存在原dataframe
>>> row
Empty DataFrame
Columns: [Name, Age, Gender]
Index: []
>>> 

当然也可以:用’|'关系操作符:

>>> row = df.loc[(df['Age'] >= 18)|(df['Name'] == 'Jim')]
>>> rowName  Age  Gender
0   Tom   20    Male
1   Jim   18    Male
2  Lily   22  Female
>>> 

注:还可以关系:~ 非

(3)函数条件表达方式

可以使用lambda或自定义函数(返回bool)选择符合返回条件的行,如:

>>> x='Jim'
>>> row = df.loc[lambda x:x['Name'] == 'Jim']
>>> rowName  Age Gender
1  Jim   18   Male
>>> 

datafame接受的几个过滤函数

(1)isin函数:

df[df[“column_name”].isin(li)] (# li = [20, 25, 27] 或 li = np.arange(20, 30))
根据从isin函数传入的列表(li),筛选出与列表中包含的数值或字符串相同的数据记录, 用法有点类似sql中的"in"

(2) query函数:

df.query(“(column_name1 == ‘str1’) & (column_name2 == ‘str2’)”)
根据query中引入的不同字段(str1,str2等)和条件,筛选出同时能满足这些要求的数据记录

(3) contains函数:

df[df[“column_name”].str.contains(“str”)]
筛选出所有含有(str)的数据记录, 用法类似于sql中的"contains"

以上参考了:链接:https://blog.csdn.net/weixin_45914452/article/details/120585861

错误条件格式:

示例1:

>>> row = df.loc[(18<=df['Age'] <= 22)]
Traceback (most recent call last):File "<pyshell#56>", line 1, in <module>row = df.loc[(18<=df['Age'] <= 22)]File "D:\Program Files\Python371\lib\site-packages\pandas\core\generic.py", line 1538, in __nonzero__f"The truth value of a {type(self).__name__} is ambiguous. "
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
>>> 

示例2:

>>> row = df.loc[df['Age'] >= 18 & df['Age'] <= 22]
Traceback (most recent call last):File "<pyshell#38>", line 1, in <module>row = df.loc[df['Age'] >= 18 & df['Age'] <= 22]File "D:\Program Files\Python371\lib\site-packages\pandas\core\generic.py", line 1538, in __nonzero__f"The truth value of a {type(self).__name__} is ambiguous. "
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

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

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

相关文章

2024--Django平台开发-Django知识点(七)

频率超高的问题 Redis的问题虚拟环境mysqlcient和pymysql短信服务&#xff0c;一期用的是腾讯云短信 虚拟环境 可以用来创建虚拟环境的&#xff1a; virtualenv这个模块&#xff0c;简单易上手&#xff0c;推荐 小白不建议&#xff0c;conda&#xff0c;如果大家用这个&…

React项目实战--------极客园项目PC端

项目介绍&#xff1a;主要将学习到的项目内容进行总结&#xff08;有需要项目源码的可以私信我&#xff09; 关于我的项目的配置如下&#xff0c;请注意下载的每个版本不一样&#xff0c;写的api也不一样 一、项目介绍 1.资料 1&#xff09;短信接收&M端演示&#xff1a…

微信小程序 - 视图与逻辑 介绍

文章目录 视图与逻辑一、页面导航1、页面导航 - 声明式导航1.1 导航到tabBar页面1.2 导航到非tabBar页面1.3 后退导航 2、页面导航 - 编程式导航2.1 导航到tabBar页面2.2 导航到非tabBar页面2.3 后退导航 3、页面导航 - 导航传参3.1 声明式导航传参3.2 编程式导航传参3.3 在 on…

ZZULIOJ 1125: 上三角矩阵的判断

题目描述 编写程序&#xff0c;输入一个正整数n&#xff08;1<n<10&#xff09;和n阶方阵a中的元素&#xff0c;如果a是上三角矩阵&#xff0c;输出“YES”&#xff0c;否则&#xff0c;输出“NO”。 上三角矩阵即主对角线以下&#xff08;不包括主对角线&#xff09;的…

Vue中v-if与v-show区别详解

✨ 专栏介绍 在当今Web开发领域中&#xff0c;构建交互性强、可复用且易于维护的用户界面是至关重要的。而Vue.js作为一款现代化且流行的JavaScript框架&#xff0c;正是为了满足这些需求而诞生。它采用了MVVM架构模式&#xff0c;并通过数据驱动和组件化的方式&#xff0c;使…

目标导向理论 : 一种高效,改变人做事精神状态,决定成事概率的行为方式

百科对目标导向理论的解释 目标导向理论是激励理论的一种。它是由豪斯提出来的&#xff0c;目标导向理论的基本出发点是要求领导者排除走向目标的障碍&#xff0c;使其顺利达到目标&#xff0c;在此过程中&#xff0c;给予职工满足多种多样需要的机会。 [1]   目标导向理论认…

寻找最富裕的小家庭 - 华为OD统一考试

OD统一考试(C卷) 分值: 100分 题解: Java / Python / C++ 题目描述 在一棵树中,每个节点代表一个家庭成员,节点的数字表示其个人的财富值,一个节点及其直接相连的子节点被定义为一个小家庭现给你一棵树,请计算出最富裕的小家庭的财富和。 输入描述 第一行为一个数N,…

关于tex中的表格设置

文章目录 控制表格列宽和行高控制表格列宽的同时实现居中tex中多表格排列单元格的合并与分割对单个单元格进行操作 控制表格列宽和行高 将下面的代码放在table环境内&#xff0c;放在tabular环境外 调整表格宽度和高度&#xff1a; \resizebox{\textwidth}{2cm}{%第一个{}是表…

背包~~~~~~~~~3478:【例86.3】 完全背包问题

【题目描述】 设有n&#xfffd;种物品&#xff0c;每种物品有一个重量及一个价值。但每种物品的数量是无限的&#xff0c;同时有一个背包&#xff0c;最大载重量为M&#xfffd;&#xff0c;今从n&#xfffd;种物品中选取若干件(同一种物品可以多次选取)&#xff0c;使其重量…

C语言之从浅入深一步一步全方位理解指针【附笔试题】

文章目录 前言从浅入深理解指针《第一阶段》一、内存和地址1.1 内存1.2 究竟该如何理解编址 二、指针变量和地址2.1 取地址操作符&#xff08;&&#xff09; 三、指针变量和解引用操作符&#xff08;*&#xff09;3.1 指针变量3.2 如何拆解指针类型3.3 解引用操作符 四、指…

设计模式之解释器模式【行为型模式】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档> 学习的最大理由是想摆脱平庸&#xff0c;早一天就多一份人生的精彩&#xff1b;迟一天就多一天平庸的困扰。各位小伙伴&#xff0c;如果您&#xff1a; 想系统/深入学习某…

合并多个大语言模型文件的方法

合并多个大语言模型文件的方法 1. 合并多个大语言模型文件的方法 1. 合并多个大语言模型文件的方法 运行下面命令&#xff0c; &#xff08;示例&#xff09;Linux and macOS: cat swallow-70b-instruct.Q6_K.gguf-split-* > swallow-70b-instruct.Q6_K.gguf && …

为了这口醋,包的这饺子。为了Selenium,学有限的CSS,逐步替换XPATH

Learn about CSS rules and pseudo-classes to help you move your XPATH locators to CSS. 1. 最基本IdElement TypeDirect ChildChild or Sub-ChildClass 2. 深入一点Next SiblingAttribute ValuesChoosing a Specific Match Sub-String Matches 3 参考资料 In order for Sel…

mybatis核心配置文件介绍

mybatis核心配置文件 1. properties配置介绍 properties标签&#xff1a;加载外部的资源配置文件 ​ 属性&#xff1a;resource 指定要引入的配置文件路径 ​ 在核心配置文件中&#xff0c;通过&#xff1a;${key}方式引入外部配置文件的数据 jdbc.peroperties 的文件内容…

transfomer中Multi-Head Attention的源码实现

简介 Multi-Head Attention是一种注意力机制,是transfomer的核心机制. Multi-Head Attention的原理是通过将模型分为多个头&#xff0c;形成多个子空间&#xff0c;让模型关注不同方面的信息。每个头独立进行注意力运算&#xff0c;得到一个注意力权重矩阵。输出的结果再通过…

SVN切换账户

前言&#xff08;svn切换&#xff09; 本文章简单写下SVN账户切换操作 linux 1.删除目录 ~/.subversion/auth/ 下的所有文件。 2.再次操作svn时可重新输入用户名和密码。 windows (1)在工程中单击右键,单击"TortoiseSVN"。 (2)选择"Setting"。 (3)选择&quo…

C语言实现快排核心思想(双指针法)

核心代码&#xff1a; 这就是每一趟快排的实现代码&#xff0c;由上面的动图&#xff0c;我们能知道前后指针法的核心是玩好cur和prev这两个指针&#xff0c;具体的逻辑是cur找比key小的值&#xff0c;找到就prev&#xff0c;然后prev和cur的值就进行交换&#xff0c;但是总不能…

统信UOS操作系统上禁用IPv6

原文链接&#xff1a;统信UOS操作系统上禁用IPv6 hello&#xff0c;大家好啊&#xff01;继之前我们讨论了如何在麒麟KYLINOS上禁用IPv6之后&#xff0c;今天我要给大家带来的是在统信UOS操作系统上禁用IPv6的方法。IPv6是最新的网络通信协议&#xff0c;但在某些特定的网络环境…

PiflowX-DorisWrite组件

DorisWrite组件 组件说明 往Doris存储写入数据。 计算引擎 flink 组件分组 doris 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子fenodesFenodes“”无是Doris FE http地址&#xff0c; 支持多个…

基于企业级SaaS低代码平台的协同制造产品解决方案

万界星空科技低代码平台提供的MES&#xff0c;WMS&#xff0c;QMS等应用&#xff0c;是助力企业从数字化工厂向数字化企业升级的落地管道及载体&#xff0c;能帮助企业在数字化转型的过程中&#xff0c;实现制造企业与其供应链的协同制造。从订单发出、供应商确认、供应商生产、…