30_Pandas.DataFrame提取(选择)指定行名和列名的行和列
30_Pandas.DataFrame提取(选择)指定行名和列名的行和列
从pandas.DataFrame中提取(选择)行名称(索引名称)和列名称(列名称)满足特定条件的行或列。
了解如何提取元素包含特定字符串而不是行名/列名的行,参阅以下文章。
- 08_Pandas提取含有指定字符串的行(完全匹配,部分匹配)
步骤基本上是相同的:使用pandas字符串方法获取布尔数组,并使用它来提取具有布尔索引引用的行或列。
pandas字符串方法具有以下功能。
- str.contains():包含特定的字符串
- str.endswith():以特定字符串结尾
- str.startswith():以特定的字符串开头
- str.match():匹配正则表达式模式
在此,对于以下内容进行说明:
- 提取行名称满足条件的行
- query()
- 提取具有满足条件的列名的列
- 提取满足条件的行名和列名的元素
以下面的数据为例。
import pandas as pddf = pd.read_csv('./data/30/sample_pandas_normal.csv', index_col=0)
print(df)
# age state point
# name
# Alice 24 NY 64
# Bob 42 CA 92
# Charlie 18 CA 70
# Dave 68 TX 70
# Ellen 24 CA 88
# Frank 30 NY 57
提取行名称满足条件的行
将字符串方法应用于可以通过index属性获得的索引对象。
print(df.index)
# Index(['Alice', 'Bob', 'Charlie', 'Dave', 'Ellen', 'Frank'], dtype='object', name='name')print(df.index.str.contains('li'))
# [ True False True False False False]
参阅获得的布尔序列中的行。
print(df[df.index.str.contains('li')])
# age state point
# name
# Alice 24 NY 64
# Charlie 18 CA 70
该方法与其他字符串方法相同。
print(df.index.str.endswith('e'))
# [ True False True True False False]print(df[df.index.str.endswith('e')])
# age state point
# name
# Alice 24 NY 64
# Charlie 18 CA 70
# Dave 68 TX 70
query()
也可以使用query()方法指定索引条件。
如果已安装numexpr,则需要指定参数engine =‘python’(numexpr版本2.6.5,pandas版本0.23.0)。
可以通过索引或索引列的名称(示例中的名称)指定索引列。
print(df.query('index.str.contains("li")', engine='python'))
# age state point
# name
# Alice 24 NY 64
# Charlie 18 CA 70print(df.query('name.str.endswith("e")', engine='python'))
# age state point
# name
# Alice 24 NY 64
# Charlie 18 CA 70
# Dave 68 TX 70
提取具有满足条件的列名的列
对于列名,将字符串方法应用于可以通过columns属性获得的索引对象。
print(df.columns)
# Index(['age', 'state', 'point'], dtype='object')print(df.columns.str.endswith('e'))
# [ True True False]
列的布尔索引引用为loc [:.Bool array]。
该位置由列名指定/行名是loc,位置由行号指定/列号是iloc,但是在使用布尔索引引用的情况下,loc或iloc均可接受。
print(df.loc[:, df.columns.str.endswith('e')])
# age state
# name
# Alice 24 NY
# Bob 42 CA
# Charlie 18 CA
# Dave 68 TX
# Ellen 24 CA
# Frank 30 NYprint(df.iloc[:, df.columns.str.endswith('e')])
# age state
# name
# Alice 24 NY
# Bob 42 CA
# Charlie 18 CA
# Dave 68 TX
# Ellen 24 CA
# Frank 30 NY
有关loc和iloc的详细信息,请参阅以下文章。
- 04_Pandas获取和修改任意位置的值(at,iat,loc,iloc)
提取满足条件的行名和列名的元素
还可以为行名和列名指定条件。
将所需的字符串方法应用于索引和列,并使用loc或iloc引用布尔索引。
print(df.loc[df.index.str.contains('li'), df.columns.str.endswith('e')])
# age state
# name
# Alice 24 NY
# Charlie 18 CA
30_Pandas.DataFrame提取(选择)指定行名和列名的行和列相关推荐
- pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改
01_Pandas.DataFrame的行名和列名的修改 pandas.DataFrame行名(index)和列名(columns)的修改方法如下. rename() 任意的行名(index)和列名( ...
- 18_NumPy数组ndarray中提取,删除满足条件的元素,行和列
18_NumPy数组ndarray中提取,删除满足条件的元素,行和列 将通过示例代码说明从NumPy数组ndarray中提取(获取)或删除满足条件的元素,行和列的方法. 在此对以下内容进行说明: 提取 ...
- python如何从一个dataframe提取相应的行组成一个新的dataframe_Python|专题(1)——数据处理常规操作集(1)...
大家好!好久不见!适逢国庆,先祝我亲爱的祖国七十周年生日快乐! 这一系列文章是针对最近在实习中做的一些数据预处理操作的整理.我们希望通过它们,带领大家了解和熟悉一些python做数据清洗,数据整合等的 ...
- python如何从一个dataframe提取相应的行组成一个新的dataframe_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!...
本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...
- python用pandas提取行列_python- pandas 不删除符合条件的行和列
我正在尝试建立一个回归模型,以便根据出现的单词来预测收视率(1-5)(回归本身并不一定表现良好,更多的是关于所采用的方法). 我使用以下代码创建了一个词频矩阵: bow = df.Review2.st ...
- R语言将数据框中的字符类型数字转换为数值及行名变换
1 数据框类型转换 gsetpm.rsem=as.data.frame(lapply(gsetpm.rsem,as.numeric)) #gsetpm换成自己的数据 2 行名及列名为第一行和第一列 变 ...
- Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数
[小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...
- 行存储(Row-Based)和列存储(Column-Based)
目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based). Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储. ...
- python删除excel某行的格式_Python+Xlwings 删除Excel的行和列
这篇文章主要介绍了Python+Xlwings 删除Excel的行和列的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一.需求: 某公司管理的多个资管计划每天生成A表,业务人员需 ...
最新文章
- 使用迭代查找一个list中最小和最大值,并返回一个tuple。
- 【Micropython】发光二极管手工制作炫彩跑马灯
- 日本社交巨头Line推出BCH交易服务,助力比特币现金蓬勃发展
- matplotlib学习日记(九)-图形样式
- 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
- JZOJ 5385. 【NOIP2017提高A组模拟9.23】Carry
- 娓娓道来Promise
- 计算几何——圆卡精度cf1059D
- python-虚拟环境-centos系统安装
- Linux 命令(85)—— md5sum 命令
- [ocUI日记]UIwindow和UIview
- Linux ldd时某个依赖库so not found的一种特殊情形
- 读书 -- 个人购书经验总结
- Git对G码云上项目的上传及同步
- Linux常用文件目录指令(实操)
- ChunJun 1.16 Release版本即将发布,bug 捉虫活动邀您参与!
- Google map API3 标注、添加事件、地图查询
- kubelet源码分析(二)之 NewMainKubelet
- 如何建立师资库_HR们如何建立人才库?
- vue指令-v-for