我们对 DataFrame 进行选择,大抵从这三个层次考虑:行列、区域、单元格。
其对应使用的方法如下:
一. 行,列 --> df[]
二. 区域   --> df.loc[], df.iloc[], df.ix[]
三. 单元格 --> df.at[], df.iat[]

下面开始练习:

import numpy as np
import pandas as pddf = pd.DataFrame(np.random.randn(6,4), index=list('abcdef'), columns=list('ABCD'))

1. df[]:

一维
行维度:
    整数切片、标签切片、<布尔数组>
列维度:
    标签索引、标签列表、Callable

df[:3]
df['a':'c']
df[[True,True,True,False,False,False]] # 前三行(布尔数组长度等于行数)
df[df['A']>0] # A列值大于0的行
df[(df['A']>0) | (df['B']>0)] # A列值大于0,或者B列大于0的行
df[(df['A']>0) & (df['C']>0)] # A列值大于0,并且C列大于0的行
df['A']
df[['A','B']]
df[lambda df: df.columns[0]] # Callable

2. df.loc[]

二维,先行后列
行维度:
    标签索引、标签切片、标签列表、<布尔数组>、Callable
列维度:
    标签索引、标签切片、标签列表、<布尔数组>、Callable

df.loc['a', :]
df.loc['a':'d', :]
df.loc[['a','b','c'], :]
df.loc[[True,True,True,False,False,False], :] # 前三行(布尔数组长度等于行数)
df.loc[df['A']>0, :]
df.loc[df.loc[:,'A']>0, :]
df.loc[df.iloc[:,0]>0, :]
df.loc[lambda _df: _df.A > 0, :]
df.loc[:, 'A']
df.loc[:, 'A':'C']
df.loc[:, ['A','B','C']]
df.loc[:, [True,True,True,False]] # 前三列(布尔数组长度等于行数)
df.loc[:, df.loc['a']>0]          # a行大于0的列
df.loc[:, df.iloc[0]>0]           # 0行大于0的列
df.loc[:, lambda _df: ['A', 'B']]
df.A.loc[lambda s: s > 0]

3. df.iloc[]

二维,先行后列
行维度:
    整数索引、整数切片、整数列表、<布尔数组>
列维度:
    整数索引、整数切片、整数列表、<布尔数组>、Callable

df.iloc[3, :]
df.iloc[:3, :]
df.iloc[[0,2,4], :]
df.iloc[[True,True,True,False,False,False], :] # 前三行(布尔数组长度等于行数)
df.iloc[df['A']>0, :]       #× 为什么不行呢?想不通!
df.iloc[df.loc[:,'A']>0, :] #×
df.iloc[df.iloc[:,0]>0, :]  #×
df.iloc[lambda _df: [0, 1], :]
df.iloc[:, 1]
df.iloc[:, 0:3]
df.iloc[:, [0,1,2]]
df.iloc[:, [True,True,True,False]] # 前三列(布尔数组长度等于行数)
df.iloc[:, df.loc['a']>0] #×
df.iloc[:, df.iloc[0]>0]  #×
df.iloc[:, lambda _df: [0, 1]]

4. df.ix[]

二维,先行后列
行维度:
    整数索引、整数切片、整数列表、
    标签索引、标签切片、标签列表、
    <布尔数组>、
    Callable
列维度:
    整数索引、整数切片、整数列表、
    标签索引、标签切片、标签列表、
    <布尔数组>、
    Callable

df.ix[0, :]
df.ix[0:3, :]
df.ix[[0,1,2], :]df.ix['a', :]
df.ix['a':'d', :]
df.ix[['a','b','c'], :]
df.ix[:, 0]
df.ix[:, 0:3]
df.ix[:, [0,1,2]]df.ix[:, 'A']
df.ix[:, 'A':'C']
df.ix[:, ['A','B','C']]

5. df.at[]

精确定位单元格
行维度:
    标签索引
列维度:
    标签索引

df.at['a', 'A']

6. df.iat[]

精确定位单元格

行维度:
    整数索引
列维度:
    整数索引

df.iat[0, 0]

python科学计算笔记(四)pandas 数据索引与选取相关推荐

  1. python科学计算笔记(十)pandas中时间、日期以及时间序列处理

    Python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫秒形式存储日期和时间,datetime. ...

  2. python科学计算笔记(十二)pandas的resample采样

    降采样:高频数据到低频数据 升采样:低频数据到高频数据 主要函数:resample()(pandas对象都会有这个方法) resample方法的参数 参数 说明 freq 表示重采样频率,例如'M'. ...

  3. python科学计算之numpy+pandas+matplotlib+mysql

    简介 本文主要介绍了读取mysql中的数据,将其保存至numpy和pandas中,通过matplotlib进行可视化数据分析. 一.环境搭建 使用anaconda搭建科学计算环境,并安装相关软件包. ...

  4. python科学计算笔记(十四)pandas数据过滤、清理、转换

    本篇博客主要内容 1)移除重复数据(duplicated) 2)利用函数或映射进行数据转换(map) 3)替换值(replace) 4)重命名轴索引 5)检测和过滤异常值(逻辑索引) 6)随机采样或选 ...

  5. python科学计算笔记(九)pandas中DataFrame数据操作函数

    Python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数 ...

  6. python科学计算笔记(八)pandas大数据HDF5硬盘操作方式

    大数据分析,内存不够用怎么办? 当然,你可以升级你的电脑为超级电脑. 另外,你也可以采用硬盘操作. 本文示范了硬盘操作的一种可能的方式. 本文基于:win10(64) + py3.5 本人电脑配置:4 ...

  7. python科学计算笔记(十三)pandas的merge、concat合并数据集

    本篇博客主要介绍: 合并数据集:.merge()..concat()等方法,类似于SQL或其他关系型数据库的连接操作. 合并数据集 1) merge 函数参数 参数 说明 left 参与合并的左侧Da ...

  8. python科学计算笔记(三)pandas中Series和DataFrame练习

    from pandas import Series, DataFrame# Series接收list或dict作为一维数据 #两个属性:values, index #① s1 = Series([4, ...

  9. python科学计算笔记(二)pandas获取网络文件

    import urllib.requestimport requests from io import StringIOimport numpy as npimport pandas as pd '' ...

最新文章

  1. 并行程序设计报告(MPI并行计算π,实现mandelbrot集)
  2. 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
  3. android AVD运行chrome,contentshell,chromeshell失败解决方法
  4. ADF_ManagedBean的概念和管理(概念)
  5. rank() over,dense_rank(),row_number() 的区别
  6. UBUNTU下双显示器设置
  7. Redis:20---常用功能之(发布与订阅)
  8. dockerfile详解-dockerfile构建过程解析,dockerfile体系结构保留字解析,案例解析
  9. 【写作技巧】毕业论文写作资料--刊物搜索
  10. Flex 中使用 FileReference 的 download 方法下载文件时的缓存刷新问题
  11. Python下载文件到本地
  12. PCB封装绘制时的摆放方向
  13. bat 等待输入_继续提速——双拼的进阶,音形输入
  14. oracle ogg操作日志,对一段Oracle GoldenGate (OGG) 传输过程日志(.rpt文件)的解释...
  15. 【超级有用】大数据的压缩格式
  16. 万字长文:复盘 8 年副业经历,耗时一周,我总结出了独特的「复利思维复业赚钱法」,不看后悔...
  17. pydub mp3转wav
  18. 结构光三维重建(二)线结构光三维重建
  19. 用计算机计算1357城八十九十,1357单元.doc
  20. TeamViewer:一路前行,用技术实现领域更新

热门文章

  1. 【GIF动画+完整可运行源代码】C++实现 基数排序——十大经典排序算法之十
  2. Linux配置最基础的命令
  3. oracle12c完全卸载工具_oracle完全卸载方法
  4. python笔记之while循环
  5. Linux上(Redhat7)实现NFS文件共享服务
  6. KEIL常见编译错误和警告解决方案汇总
  7. python legend位置_关于matplotlib-legend 位置属性 loc 使用说明
  8. mysql文件查看工具_OpenDBViewer
  9. android+5.0+小米手环,小米手环5和荣耀手环6哪个好-参数对比
  10. socket自定义框架