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 专题九 Mysql数据库编程基础知识
Mar 16 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
Aug 04 Python
Python使用Flask-SQLAlchemy连接数据库操作示例
Aug 31 Python
Python实现提取XML内容并保存到Excel中的方法
Sep 01 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
pandas求两个表格不相交的集合方法
Dec 08 Python
python画图--输出指定像素点的颜色值方法
Jul 03 Python
python实发邮件实例详解
Nov 11 Python
python实现提取COCO,VOC数据集中特定的类
Mar 10 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 Python
python 制作本地应用搜索工具
Feb 27 Python
Python Django ORM连表正反操作技巧
Jun 13 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
php利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
一个PHP验证码类代码分享(已封装成类)
2011/07/17 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
PHP中substr()与explode()函数用法分析
2014/11/24 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
广泛收集的jQuery拖放插件集合
2012/04/09 Javascript
jquery插件推荐浏览器嗅探userAgent
2014/11/09 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
js获取数组的最后一个元素
2015/04/14 Javascript
JavaScript中定义类的方式详解
2016/01/07 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
Nodejs高扩展性的模板引擎 functmpl简介
2017/02/13 NodeJs
vue组件实现可搜索下拉框扩展
2020/10/23 Javascript
vue实现简单loading进度条
2018/06/06 Javascript
详解Bootstrap 学习(一)入门
2019/04/12 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
小程序使用wxs解决wxml保留2位小数问题
2019/12/13 Javascript
js如何验证密码强度
2020/03/18 Javascript
jQuery实现简单三级联动效果
2020/09/05 jQuery
nodejs使用Sequelize框架操作数据库的实现
2020/10/21 NodeJs
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
介绍Python的@property装饰器的用法
2015/04/28 Python
LRUCache的实现原理及利用python实现的方法
2017/11/21 Python
python算法题 链表反转详解
2019/07/02 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
接口中的方法可以是abstract的吗
2015/07/23 面试题
长辈证婚人证婚词
2014/01/09 职场文书
班主任工作经验材料
2014/02/02 职场文书
十八大感想感言
2014/02/10 职场文书
大学生秋游活动方案
2014/02/17 职场文书
贷款委托书范本
2014/04/08 职场文书
同学聚会邀请函
2015/01/30 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
自从在 IDEA 中用了热部署神器 JRebel 之后,开发效率提升了 10(真棒)
2021/06/26 Java/Android