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选择排序、冒泡排序、合并排序代码实例
Apr 10 Python
Python2/3中urllib库的一些常见用法
Dec 19 Python
Python实现按照指定要求逆序输出一个数字的方法
Apr 19 Python
python-str,list,set间的转换实例
Jun 27 Python
python 异或加密字符串的实例
Oct 14 Python
python 使用装饰器并记录log的示例代码
Jul 12 Python
python之pexpect实现自动交互的例子
Jul 25 Python
matplotlib jupyter notebook 图像可视化 plt show操作
Apr 24 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
Python 保存加载mat格式文件的示例代码
Aug 04 Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
Apr 28 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
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
PHP 自动加载类原理与用法实例分析
2020/04/14 PHP
10个基于浏览器的JavaScript调试工具分享
2013/02/07 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
原生js制作简单的数字键盘
2015/04/24 Javascript
异步JS框架的作用以及实现方法
2015/10/29 Javascript
JavaScript事件学习小结(三)js事件对象
2016/06/09 Javascript
JavaScript截屏功能的实现代码
2017/07/28 Javascript
vue 右键菜单插件 简单、可扩展、样式自定义的右键菜单
2018/11/29 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
ES6中Promise的使用方法实例总结
2020/02/18 Javascript
JS通过识别id、value值对checkbox设置选中状态
2020/02/19 Javascript
JS判断数组四种实现方法详解
2020/06/29 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
Python 备份程序代码实现
2017/03/06 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python实现验证码识别功能
2018/06/07 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
用HTML5实现手机摇一摇的功能的教程
2012/10/30 HTML / CSS
匡威俄罗斯官网:Converse俄罗斯
2020/05/09 全球购物
营销人才自我鉴定范文
2013/12/25 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
篮球比赛拉拉队口号
2014/06/10 职场文书
环保标语口号
2014/06/13 职场文书
采购部长岗位职责
2014/06/13 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
中秋节主题班会
2015/08/14 职场文书
学习弘扬焦裕禄精神心得体会
2016/01/23 职场文书