使用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切片不同,在最终选择的数据中包含切片的startstop

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使用布尔数组,可以使用listarray,也可以使用Series,使用Series时index需要一致,否则会报IndexingError

5.使用可调用函数

切片操作[]

  • []操作只能输入一个维度,不能用逗号隔开输入两个维度:

    1. 使用列名.lociloc只输入一维时选取的是行,而[]选取的是列,并且必须使用列名
    2. 使用布尔数组: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索引和选择数据相关推荐

  1. pandas索引和选择

    http://blog.csdn.net/pipisorry/article/details/18012125 索引Index Many of these methods or variants th ...

  2. pandas 索引_Pandas学习笔记03数据清洗(通过索引选择数据)

    点击上方"可以叫我才哥"关注我们 今天我们就在jupyterlab里进行操作演示,本次推文内容主要以截图为主了. 有兴趣的可以公众号回复 "索引" 获取 演示原 ...

  3. pandas plot label_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

    作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...

  4. 数据科学 IPython 笔记本 7.5 数据索引和选择

    7.5 数据索引和选择 原文:Data Indexing and Selection 译者:飞龙 协议:CC BY-NC-SA 4.0 本节是<Python 数据科学手册>(Python ...

  5. 字段缺失_数据科学| 手把手教你用 pandas 索引、汇总、处理缺失数据

    作者:Paul 编者按: pandas提供了很多常用的数学和统计方法,本文中将用十分详细的例子来具体进行介绍:另外在许多数据分析工作中,缺失数据是经常发生的,将会具体介绍如何处理缺失数据.本文十分详细 ...

  6. 如何在 Python 数据中灵活运用 Pandas 索引?

    作者 | 周志鹏 责编 | 刘静 据不靠谱的数据来源统计,学习了Pandas的同学,有超过60%仍然投向了Excel的怀抱,之所以做此下策,多半是因为刚开始用Python处理数据时,选择想要的行和列实 ...

  7. 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 ...

  8. Pandas选择数据

    Pandas是一个非常好用的工具,可以用来处理各种格式的数据,例如过滤注释信息生成最终结果.此文仅仅是记录如何在Pandas中选择数据.当然,这仅仅是从网络上获取的一部分.侵联删. import pa ...

  9. pandas索引复合索引dataframe数据、索引其中一个水平(level)的所有数据行(index all rows in a level)

    pandas索引复合索引dataframe数据.索引其中一个水平(level)的所有数据行(index all rows in a level) 目录

最新文章

  1. 基础知识——测试代码(七)
  2. mysql mybatis 主键id_MyBatis+MySQL 返回插入的主键ID-Go语言中文社区
  3. 牛气!GitHub 标星 119K+!这些神器仅需一行代码即可下载全网视频!
  4. RMAN 备份SHELL
  5. 软件设计原则(一)开闭原则(Open-Closed Principle, OCP)
  6. PowerDesigner(1)----转载
  7. 为什么苹果有2500亿美刀不用,偏偏要借钱?
  8. 计算机和公文写作买什么资料,公文写作和计算机应用笔试和复习大纲资料.doc...
  9. java系统架构师有的特质_Java中特质模式的定义
  10. 流式传输大数据:Storm,Spark和Samza
  11. 清洁数据ploy n_清洁屋数据
  12. ORA-01810格式代码出现两次 的解决方案
  13. 侙程序错误怎么找c语言,log4j 施用 - 汉字转换成拼音的种(转) - 遏止EditText弹出输入法_169IT.COM...
  14. 【ARC112F】Die Siedler(根号分治)(bfs)
  15. linux系统安装wine关关采集,在Ubuntu 20.04系统上安装和使用Wine 5的方法
  16. 【干货】在拉斯维加斯,程序员如何靠bandits算法干掉老虎机
  17. java 立体几何体中心点,高中数学立体几何重心考点的解题技巧_招生指南
  18. echart结合高德地图的数据可视化大数据展示平台模板
  19. Machine Translation and Datasets - 机器翻译与数据集(RNN循环神经网络)
  20. 水果店微信小程序定制开发需要多少钱【最新报价方案】

热门文章

  1. 基于FPGA的IP核RAM的设计和调用
  2. [转]各种编码ANSI、GB2312、GBK、GB18030、UNICODE以及UTF-8傻傻分不清!
  3. 前端网络知识目录(持续更新)
  4. 比特币源码研读(4)数据结构-交易池TransactionPool
  5. ext2文件系统 - mke2fs
  6. mysql中的增删查找和查看2;
  7. 自己封装JSTL 自定义标签
  8. Dubbo系列(3)_官方Demo说明
  9. 如何设置iframe高度自适应,在跨域的情况下能做到吗?
  10. 工作那些事儿(12)- 缓存