python科学计算笔记(四)pandas 数据索引与选取
我们对 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 数据索引与选取相关推荐
- python科学计算笔记(十)pandas中时间、日期以及时间序列处理
Python标准库包含于日期(date)和时间(time)数据的数据类型,datetime.time以及calendar模块会被经常用到. datetime以毫秒形式存储日期和时间,datetime. ...
- python科学计算笔记(十二)pandas的resample采样
降采样:高频数据到低频数据 升采样:低频数据到高频数据 主要函数:resample()(pandas对象都会有这个方法) resample方法的参数 参数 说明 freq 表示重采样频率,例如'M'. ...
- python科学计算之numpy+pandas+matplotlib+mysql
简介 本文主要介绍了读取mysql中的数据,将其保存至numpy和pandas中,通过matplotlib进行可视化数据分析. 一.环境搭建 使用anaconda搭建科学计算环境,并安装相关软件包. ...
- python科学计算笔记(十四)pandas数据过滤、清理、转换
本篇博客主要内容 1)移除重复数据(duplicated) 2)利用函数或映射进行数据转换(map) 3)替换值(replace) 4)重命名轴索引 5)检测和过滤异常值(逻辑索引) 6)随机采样或选 ...
- python科学计算笔记(九)pandas中DataFrame数据操作函数
Python数据分析工具pandas中DataFrame和Series作为主要的数据结构. 本文主要是介绍如何对DataFrame数据进行操作并结合一个实例测试操作函数. 1)查看DataFrame数 ...
- python科学计算笔记(八)pandas大数据HDF5硬盘操作方式
大数据分析,内存不够用怎么办? 当然,你可以升级你的电脑为超级电脑. 另外,你也可以采用硬盘操作. 本文示范了硬盘操作的一种可能的方式. 本文基于:win10(64) + py3.5 本人电脑配置:4 ...
- python科学计算笔记(十三)pandas的merge、concat合并数据集
本篇博客主要介绍: 合并数据集:.merge()..concat()等方法,类似于SQL或其他关系型数据库的连接操作. 合并数据集 1) merge 函数参数 参数 说明 left 参与合并的左侧Da ...
- python科学计算笔记(三)pandas中Series和DataFrame练习
from pandas import Series, DataFrame# Series接收list或dict作为一维数据 #两个属性:values, index #① s1 = Series([4, ...
- python科学计算笔记(二)pandas获取网络文件
import urllib.requestimport requests from io import StringIOimport numpy as npimport pandas as pd '' ...
最新文章
- 并行程序设计报告(MPI并行计算π,实现mandelbrot集)
- 项目开发神器VsCode配置指南!(含C++、Python、Java环境配置)
- android AVD运行chrome,contentshell,chromeshell失败解决方法
- ADF_ManagedBean的概念和管理(概念)
- rank() over,dense_rank(),row_number() 的区别
- UBUNTU下双显示器设置
- Redis:20---常用功能之(发布与订阅)
- dockerfile详解-dockerfile构建过程解析,dockerfile体系结构保留字解析,案例解析
- 【写作技巧】毕业论文写作资料--刊物搜索
- Flex 中使用 FileReference 的 download 方法下载文件时的缓存刷新问题
- Python下载文件到本地
- PCB封装绘制时的摆放方向
- bat 等待输入_继续提速——双拼的进阶,音形输入
- oracle ogg操作日志,对一段Oracle GoldenGate (OGG) 传输过程日志(.rpt文件)的解释...
- 【超级有用】大数据的压缩格式
- 万字长文:复盘 8 年副业经历,耗时一周,我总结出了独特的「复利思维复业赚钱法」,不看后悔...
- pydub mp3转wav
- 结构光三维重建(二)线结构光三维重建
- 用计算机计算1357城八十九十,1357单元.doc
- TeamViewer:一路前行,用技术实现领域更新
热门文章
- 【GIF动画+完整可运行源代码】C++实现 基数排序——十大经典排序算法之十
- Linux配置最基础的命令
- oracle12c完全卸载工具_oracle完全卸载方法
- python笔记之while循环
- Linux上(Redhat7)实现NFS文件共享服务
- KEIL常见编译错误和警告解决方案汇总
- python legend位置_关于matplotlib-legend 位置属性 loc 使用说明
- mysql文件查看工具_OpenDBViewer
- android+5.0+小米手环,小米手环5和荣耀手环6哪个好-参数对比
- socket自定义框架