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 相关文章推荐
jupyter安装小结
Mar 13 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
python实现决策树分类
Aug 30 Python
windows下python安装小白入门教程
Sep 18 Python
如何用Python破解wifi密码过程详解
Jul 12 Python
python try except返回异常的信息字符串代码实例
Aug 15 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
Django中使用MySQL5.5的教程
Dec 18 Python
matplotlib 曲线图 和 折线图 plt.plot()实例
Apr 17 Python
Python中socket网络通信是干嘛的
May 27 Python
Python3爬虫mitmproxy的安装步骤
Jul 29 Python
Flask处理Web表单的实现方法
Jan 31 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里得到前天和昨天的日期的代码
2007/08/16 PHP
php生成随机密码的几种方法
2011/01/17 PHP
thinkphp文件引用与分支结构用法实例
2014/11/26 PHP
PDO防注入原理分析以及注意事项
2015/02/25 PHP
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
jquery操作select元素和option的实例代码
2016/02/03 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
input框中的name和id的区别
2016/11/16 Javascript
JS判断输入的字符串是否是数字的方法(正则表达式)
2016/11/29 Javascript
Angular中自定义Debounce Click指令防止重复点击
2017/07/26 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
vue quill editor 使用富文本添加上传音频功能
2020/01/14 Javascript
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
介绍Python中的__future__模块
2015/04/27 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Android分包MultiDex策略详解
2017/10/30 Python
django进阶之cookie和session的使用示例
2018/08/17 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
python如何将两个txt文件内容合并
2019/10/18 Python
python生成器用法实例详解
2019/11/22 Python
python爬虫数据保存到mongoDB的实例方法
2020/07/28 Python
详解python中的闭包
2020/09/07 Python
澳大利亚冲浪和时尚服装网上购物:SurfStitch
2017/07/29 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
《纸船和风筝》教学反思
2014/02/15 职场文书
个人查摆问题整改措施
2014/10/04 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
公务员学习中国梦心得体会
2016/01/05 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL
python代码实现备忘录案例讲解
2021/07/26 Python
Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高
2021/08/23 MySQL
《异世界四重奏》剧场版6月10日上映 PV视觉图原创角色发表
2022/03/20 日漫
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python