pandas 数据索引与选取的实现方法


Posted in Python onJune 21, 2019

我们对 DataFrame 进行选择,大抵从这三个层次考虑:行列、区域、单元格。

其对应使用的方法如下:
一. 行,列 --> df[]
二. 区域   --> df.loc[], df.iloc[], df.ix[]
三. 单元格 --> df.at[], df.iat[]

下面开始练习:

import numpy as np
import pandas as pd

df = 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 相关文章推荐
python中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
python使用wmi模块获取windows下的系统信息 监控系统
Oct 27 Python
Django自定义认证方式用法示例
Jun 23 Python
Python分割指定页数的pdf文件方法
Oct 26 Python
python 构造三维全零数组的方法
Nov 12 Python
Form表单及django的form表单的补充
Jul 25 Python
python安装scipy的步骤解析
Sep 28 Python
Python 面向对象之封装、继承、多态操作实例分析
Nov 21 Python
opencv3/C++图像像素操作详解
Dec 10 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
通过自学python能找到工作吗
Jun 21 Python
Python音乐爬虫完美绕过反爬
Aug 30 Python
python实现二级登陆菜单及安装过程
Jun 21 #Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 #Python
jupyter notebook 中输出pyecharts图实例
Apr 23 #Python
解决pyqt5中QToolButton无法使用的问题
Jun 21 #Python
Pandas删除数据的几种情况(小结)
Jun 21 #Python
pandas.read_csv参数详解(小结)
Jun 21 #Python
pandas 数据结构之Series的使用方法
Jun 21 #Python
You might like
在任意字符集下正常显示网页的方法二(续)
2007/04/01 PHP
php5 pdo新改动加载注意事项
2008/09/11 PHP
php 类自动载入的方法
2015/06/03 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP实现重载的常用方法实例详解
2017/10/18 PHP
PHP实现简单的协程任务调度demo示例
2020/02/01 PHP
js单词形式的运算符
2014/05/06 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
不能不知道的10个angularjs英文学习网站
2016/03/23 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
Javascript同时声明一连串(多个)变量的方法
2017/01/23 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
微信小程序仿微信运动步数排行(交互)
2018/07/13 Javascript
element-ui 中使用upload多文件上传只请求一次接口
2019/07/19 Javascript
python随机生成指定长度密码的方法
2015/04/04 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
python 自动批量打开网页的示例
2019/02/21 Python
wxpython布局的实现方法
2019/11/01 Python
Python 用turtle实现用正方形画圆的例子
2019/11/21 Python
用python绘制樱花树
2020/10/09 Python
前端实现弹幕效果的方法总结(包含css3和canvas的实现方式)
2018/07/12 HTML / CSS
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
西部世纪面试题
2014/12/05 面试题
司法建议书范文
2014/05/13 职场文书
演讲稿格式范文
2014/05/19 职场文书
大学毕业典礼演讲稿
2014/09/09 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
一百条裙子读书笔记
2015/07/01 职场文书
python中sys模块的介绍与实例
2021/04/17 Python
如何利用js在两个html窗口间通信
2021/04/27 Javascript
基于PyQT5制作一个桌面摸鱼工具
2022/02/15 Python
Python之Matplotlib绘制热力图和面积图
2022/04/13 Python