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中的闭包实例详解
Aug 29 Python
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
Python WSGI的深入理解
Aug 01 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
Apr 26 Python
用python生成与调用cntk模型代码演示方法
Aug 26 Python
Python 获取项目根路径的代码
Sep 27 Python
Python3 sys.argv[ ]用法详解
Oct 24 Python
python tkinter 设置窗口大小不可缩放实例
Mar 04 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
conda安装tensorflow和conda常用命令小结
Feb 20 Python
Django如何与Ajax交互
Apr 29 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php利用header函数下载各种文件
2016/08/24 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
优化javascript的执行速度
2010/01/23 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
基于JavaScript实现Tab选项卡切换效果
2016/11/24 Javascript
Bootstrap php制作动态分页标签
2016/12/23 Javascript
微信小程序 action-sheet 反馈上拉菜单简单实例
2017/05/11 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
JavaScript基础教程之如何实现一个简单的promise
2018/09/11 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
[00:38]TI珍贵瞬间系列(二):笑
2020/08/26 DOTA
PyCharm使用教程之搭建Python开发环境
2016/06/07 Python
基于python的字节编译详解
2017/09/20 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
python项目对接钉钉SDK的实现
2019/07/15 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
keras 实现轻量级网络ShuffleNet教程
2020/06/19 Python
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
英国川宁茶官方网站:Twinings茶
2019/05/21 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
九州传奇上机题
2014/07/10 面试题
2014年学雷锋活动总结
2014/06/26 职场文书
实习生工作证明范本
2014/09/14 职场文书
化工见习报告范文
2014/10/31 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
预备党员转正意见
2015/06/01 职场文书
士兵突击观后感
2015/06/16 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android