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的setuptools框架下生成egg的教程
Apr 13 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
Python高级用法总结
May 26 Python
python pandas 对series和dataframe的重置索引reindex方法
Jun 07 Python
Python基于jieba库进行简单分词及词云功能实现方法
Jun 16 Python
python绘制立方体的方法
Jul 02 Python
用python标准库difflib比较两份文件的异同详解
Nov 16 Python
Python内置类型性能分析过程实例
Jan 29 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
python实现无边框进度条的实例代码
Dec 30 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
python缺失值填充方法示例代码
Dec 24 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
CakePHP去除默认显示的标题及图标的方法
2008/10/22 PHP
php中使用addslashes函数报错问题的解决方法
2013/02/06 PHP
php写app接口并返回json数据的实例(分享)
2017/05/20 PHP
PHP MVC框架中类的自动加载机制实例分析
2019/09/18 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
利用jQuery插件扩展识别浏览器内核与外壳的类型和版本的实现代码
2011/10/22 Javascript
js jquery数组介绍
2012/07/15 Javascript
js编写trim()函数及正则表达式的运用
2013/10/24 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
动态的9*9乘法表效果的实现代码
2016/05/16 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
js实现鼠标跟随运动效果
2020/08/02 Javascript
vue树形结构获取键值的方法示例
2018/06/21 Javascript
详解angular如何调用HTML字符串的方法
2018/06/30 Javascript
Vue基本使用之对象提供的属性功能
2019/04/30 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
用Python编写一个基于终端的实现翻译的脚本
2015/04/24 Python
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Python中的条件判断语句基础学习教程
2016/02/07 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python 实现倒排索引的方法
2018/12/25 Python
解决pycharm工程启动卡住没反应的问题
2019/01/19 Python
Django 拆分model和view的实现方法
2019/08/16 Python
使用pyecharts1.7进行简单的可视化大全
2020/05/17 Python
keras 读取多标签图像数据方式
2020/06/12 Python
python中time、datetime模块的使用
2020/12/14 Python
pandas按条件筛选数据的实现
2021/02/20 Python
全球异乡人的跨境社交电商平台:Kouhigh口嗨网
2020/07/24 全球购物
eHarmony英国:全球领先的认真恋爱约会平台之一
2020/11/16 全球购物
大四自我鉴定范文
2013/10/06 职场文书
大学生求职推荐信
2013/11/27 职场文书
导游词之西安骊山
2019/12/03 职场文书
Java 中的 Unsafe 魔法类的作用大全
2021/06/26 Java/Android
Django框架之路由用法
2022/06/10 Python