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提取(选择)指定行名和列名的行和列相关推荐

  1. pandas 改列名称_01_Pandas.DataFrame的行名和列名的修改

    01_Pandas.DataFrame的行名和列名的修改 pandas.DataFrame行名(index)和列名(columns)的修改方法如下. rename() 任意的行名(index)和列名( ...

  2. 18_NumPy数组ndarray中提取,删除满足条件的元素,行和列

    18_NumPy数组ndarray中提取,删除满足条件的元素,行和列 将通过示例代码说明从NumPy数组ndarray中提取(获取)或删除满足条件的元素,行和列的方法. 在此对以下内容进行说明: 提取 ...

  3. python如何从一个dataframe提取相应的行组成一个新的dataframe_Python|专题(1)——数据处理常规操作集(1)...

    大家好!好久不见!适逢国庆,先祝我亲爱的祖国七十周年生日快乐! 这一系列文章是针对最近在实习中做的一些数据预处理操作的整理.我们希望通过它们,带领大家了解和熟悉一些python做数据清洗,数据整合等的 ...

  4. python如何从一个dataframe提取相应的行组成一个新的dataframe_从Excel到Python:最常用的36个Pandas函数!最完整的Pandas教程!...

    本文涉及pandas最常用的36个函数,通过这些函数介绍如何完成数据生成和导入.数据清洗.预处理,以及最常见的数据分类,数据筛选,分类汇总,透视等最常见的操作. 生成数据表 常见的生成数据表的方法有两 ...

  5. python用pandas提取行列_python- pandas 不删除符合条件的行和列

    我正在尝试建立一个回归模型,以便根据出现的单词来预测收视率(1-5)(回归本身并不一定表现良好,更多的是关于所采用的方法). 我使用以下代码创建了一个词频矩阵: bow = df.Review2.st ...

  6. R语言将数据框中的字符类型数字转换为数值及行名变换

    1 数据框类型转换 gsetpm.rsem=as.data.frame(lapply(gsetpm.rsem,as.numeric)) #gsetpm换成自己的数据 2 行名及列名为第一行和第一列 变 ...

  7. Python中通过索引名称提取数据loc()函数Python中通过行和列下标提取数据iloc()函数

    [小白从小学Python.C.Java] [Python全国计算机等级考试] [Python数据分析考试必会题] ● 标题与摘要 Python中通过索引名称提取数据 loc()函数 Python中通过 ...

  8. 行存储(Row-Based)和列存储(Column-Based)

    目前大数据存储有两种方案可供选择:行存储(Row-Based)和列存储(Column-Based). Hadoop的HBase采用列存储,MongoDB是文档型的行存储,Lexst是二进制型的行存储. ...

  9. python删除excel某行的格式_Python+Xlwings 删除Excel的行和列

    这篇文章主要介绍了Python+Xlwings 删除Excel的行和列的方法,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下 一.需求: 某公司管理的多个资管计划每天生成A表,业务人员需 ...

最新文章

  1. 使用迭代查找一个list中最小和最大值,并返回一个tuple。
  2. 【Micropython】发光二极管手工制作炫彩跑马灯
  3. 日本社交巨头Line推出BCH交易服务,助力比特币现金蓬勃发展
  4. matplotlib学习日记(九)-图形样式
  5. 万物新生(爱回收)递交赴美上市招股书,平台服务收入年复合增长达627.7%
  6. JZOJ 5385. 【NOIP2017提高A组模拟9.23】Carry
  7. 娓娓道来Promise
  8. 计算几何——圆卡精度cf1059D
  9. python-虚拟环境-centos系统安装
  10. Linux 命令(85)—— md5sum 命令
  11. [ocUI日记]UIwindow和UIview
  12. Linux ldd时某个依赖库so not found的一种特殊情形
  13. 读书 -- 个人购书经验总结
  14. Git对G码云上项目的上传及同步
  15. Linux常用文件目录指令(实操)
  16. ChunJun 1.16 Release版本即将发布,bug 捉虫活动邀您参与!
  17. Google map API3 标注、添加事件、地图查询
  18. kubelet源码分析(二)之 NewMainKubelet
  19. 如何建立师资库_HR们如何建立人才库?
  20. vue指令-v-for

热门文章

  1. 树冠体积计算之AlphaShape算法
  2. 【c语言】模拟实现字符串函数(上)
  3. php的cms是什么意思,phpcms是什么意思啊?
  4. 计算机硬件安装实验报告,计算机硬件的组装实验报告.doc
  5. 数据的价值,是什么?
  6. 绕过Android虚拟机,如何绕过android应用程序中的模拟器检测
  7. 接水问题(贪心算法)
  8. 微软云服务器怎么注销,Microsoft 账户删除及注销
  9. sql语句查询到上周、上个月的数据
  10. 字符缓冲流Buffered