pandas索引和选择数据
使用pandas索引和选择数据时,总是需要百度,因此决定对pandas.DataFrame中的索引和选择方法做个总结。所用的pandas版本号为0.20.1
pandas中有三种索引方法:.loc
,.iloc
和[]
,注意:.ix
的用法在0.20.0中已经不建议使用了!
- .loc用法
- iloc用法
- 切片操作[]
下文中全部使用一个DataFrame来举例:
.loc用法
.loc
主要是基于标签(label)的,包括行标签(index)和列标签(columns),即行名称和列名称,可以使用df.loc[index_name,col_name]
,选择指定位置的数据,其它的用法有:
1. 使用单个标签。如果.loc[]
中只有单个标签,那么选择的是某一行。 df.loc[3]
选择的是index名为‘3’的一行,注意这里的’3’是index的名称,而不是序号
2. 使用标签的list:同样是只选择行
3. 标签的切片对象:与通常的python切片不同,在最终选择的数据中包含切片的start和stop
4. 布尔型的数组:通常用于筛选符合某些条件的行
5. 可调用的函数
lambda
表达式语法:
lambda 传入参数 : 返回的计算表达式
iloc用法
iloc
是基于位置的索引,利用元素在各个轴上的索引序号进行选择,序号超出范围会产生IndexError
,切片时允许序号超过范围,用法包括:
1. 使用整数:与.loc
相同,如果只使用一个维度,则对行选择,下标从0开始
2. 使用列表或数组,同样是对行选择
3. 元素为整数的切片对象:与.loc
不同的是,这里下标为stop
的数据不被选择
也可以对列进行切片:
4. 使用布尔数组进行筛选:注意这里可以使用list
或者array
,使用Series
的话会出错,NotImplementedError
或者ValueError
,前者是Series的index与待切片DataFrame的index不同时,后者是index相同时报的错,可以自己实现体会一下。与.loc
使用布尔数组,可以使用list
, array
,也可以使用Series
,使用Series
时index需要一致,否则会报IndexingError
5.使用可调用函数
切片操作[]
[]
操作只能输入一个维度,不能用逗号隔开输入两个维度:
- 使用列名:
.loc
和iloc
只输入一维时选取的是行,而[]
选取的是列,并且必须使用列名
- 使用布尔数组:bool数组的index需要和dataframe的index一致,此时选取的是行
因此可以用来筛选符合条件的行:
- 使用列名:
避免
chained assignment
在对数据赋值使可以有以下两种操作:
df.loc[df.C>0.5,'C']=0.6
df[df.C>0.5][['C']]=0.6
上面的操作可以在df上直接修改数据,而下面的操作被称为chained assignment
,会产生SettingWithCopyWarning
,官网上的解释:indexing-view-versus-copy。直观来说就使用chained assignment
无法预测是否能对数据df进行修改,使用loc
一定是直接在df上修改数据,因此建议使用loc
pandas索引和选择数据相关推荐
- pandas索引和选择
http://blog.csdn.net/pipisorry/article/details/18012125 索引Index Many of these methods or variants th ...
- pandas 索引_Pandas学习笔记03数据清洗(通过索引选择数据)
点击上方"可以叫我才哥"关注我们 今天我们就在jupyterlab里进行操作演示,本次推文内容主要以截图为主了. 有兴趣的可以公众号回复 "索引" 获取 演示原 ...
- pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据
作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...
- 数据科学 IPython 笔记本 7.5 数据索引和选择
7.5 数据索引和选择 原文:Data Indexing and Selection 译者:飞龙 协议:CC BY-NC-SA 4.0 本节是<Python 数据科学手册>(Python ...
- 字段缺失_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据
作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...
- 如何在 Python 数据中灵活运用 Pandas 索引?
作者 | 周志鹏 责编 | 刘静 据不靠谱的数据来源统计,学习了Pandas的同学,有超过60%仍然投向了Excel的怀抱,之所以做此下策,多半是因为刚开始用Python处理数据时,选择想要的行和列实 ...
- python中Pandas之DataFrame索引、选取数据
目录 1.索引是什么 1.1 认识索引 1.2 自定义索引 2. 索引的简单使用 2.1 列索引 2.1.2 使用loc和iloc 2.2 行索引 2.2.1 使用[ : ] 2.2.2 使用.loc ...
- Pandas选择数据
Pandas是一个非常好用的工具,可以用来处理各种格式的数据,例如过滤注释信息生成最终结果.此文仅仅是记录如何在Pandas中选择数据.当然,这仅仅是从网络上获取的一部分.侵联删. import pa ...
- pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)
pandas索引复合索引dataframe数据.索引其中一个水平(level)的所有数据行(index all rows in a level) 目录
最新文章
- 基础知识——测试代码(七)
- mysql mybatis 主键id_MyBatis+MySQL 返回插入的主键ID-Go语言中文社区
- 牛气!GitHub 标星 119K+!这些神器仅需一行代码即可下载全网视频!
- RMAN 备份SHELL
- 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)
- PowerDesigner(1)----转载
- 为什么苹果有2500亿美刀不用,偏偏要借钱?
- 计算机和公文写作买什么资料,公文写作和计算机应用笔试和复习大纲资料.doc...
- java系统架构师有的特质_Java中特质模式的定义
- 流式传输大数据:Storm,Spark和Samza
- 清洁数据ploy n_清洁屋数据
- ORA-01810格式代码出现两次 的解决方案
- 侙程序错误怎么找c语言,log4j 施用 - 汉字转换成拼音的种(转) - 遏止EditText弹出输入法_169IT.COM...
- 【ARC112F】Die Siedler(根号分治)(bfs)
- linux系统安装wine关关采集,在Ubuntu 20.04系统上安装和使用Wine 5的方法
- 【干货】在拉斯维加斯,程序员如何靠bandits算法干掉老虎机
- java 立体几何体中心点,高中数学立体几何重心考点的解题技巧_招生指南
- echart结合高德地图的数据可视化大数据展示平台模板
- Machine Translation and Datasets - 机器翻译与数据集(RNN循环神经网络)
- 水果店微信小程序定制开发需要多少钱【最新报价方案】