pandas DataFrame索引行列的实现


Posted in Python onJune 04, 2019
  • python版本: 3.6
  • pandas版本: 0.23.4

行索引

索引行有三种方法,分别是 loc iloc ix

import pandas as pd
import numpy as np

index = ["a", "b", "c", "d"]
data = np.random.randint(10, size=(4, 3))
df = pd.DataFrame(data, index=index)

"""
  0 1 2
a 9 7 1
b 0 0 7
c 2 6 5
d 8 2 5
"""

loc

loc通过行索引名字来确定行的

单行索引, 返回Series对象

df.loc["a"]
"""
0  9
1  7
2  1
Name: a, dtype: int64
"""

df.loc["b"]
"""
0  0
1  0
2  7
Name: b, dtype: int64
"""

多行索引, 返回DataFrame对象

df.loc[["a", "c"]]
"""
  0 1 2
a 9 7 1
c 2 6 5
"""

iloc

通过行索引序号来确定行的

单行索引, 返回Series对象

df.iloc[0]
"""
0  9
1  7
2  1
Name: a, dtype: int64
"""

df.iloc[1]
"""
0  0
1  0
2  7
Name: b, dtype: int64
"""

多行索引, 返回DataFrame对象

df.iloc[[0, 2]]
"""
  0 1 2
a 9 7 1
c 2 6 5
"""

ix(不建议使用)

通过行索引名字或序号来确定行的, 如果行索引 index 的类型为整型时, 使用 ix 方法索引时为按行索引名字进行索引, 如行索引名不存在则会报错

index = [2, 3, 4, 5]
df = pd.DataFrame(data, index=index)

"""
  0 1 2
2 9 7 1
3 0 0 7
4 2 6 5
5 8 2 5
"""

df.ix[2]
"""
0  9
1  7
2  1
Name: 2, dtype: int64
"""
# 提示信息
"""
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing
"""

# 如果 index 为整数, 则不能按行索引号进行索引
df.ix[0]
"""
...
KeyError: 0
"""

列索引

索引行有两种方法,分别是 . []

import pandas as pd
import numpy as np

columns = ["i", "ii", "iii"]
data = np.random.randint(10, size=(4, 3))
df = pd.DataFrame(data, columns=columns)

"""
  i ii iii 
0 4  5  9 
1 0  3  4 
2 7  9  1 
3 8  2  3 
"""

通过 . 属性直接获取指定行, 返回Series对象

df.i
"""
0  4
1  0
2  7
3  8
Name: i, dtype: int64
"""

 []

单列索引, 返回DataFrame对象

df[["i"]]
"""
  i
0 4
1 0
2 7
3 8
"""

多列索引, 返回DataFrame对象

df[["i", "ii"]]
"""
  i ii
0 4  5
1 0  3
2 7  9
3 8  2
"""

同时索引行及列

通过指定索引名或切片方式进行索引

index = ["a", "f", "c", "h"]
columns = ["i", "ii", "iii"]

df = pd.DataFrame(data, index=index, columns=columns)
"""
  i ii iii
a 4  5  9
f 0  3  4
c 7  9  1
h 8  2  3
"""

loc

通过指定行及列索引名进行索引, 返回DataFrame对象

df.loc[["a", "f"], ["ii", "iii"]]
"""
  ii iii
a  5  9
f  3  4
"""

通过指定行及列索引名范围进行索引(包含边值), 返回DataFrame对象

df.loc["a":"c", "ii":"iii"]
"""
  ii iii
a  5  9
f  3  4
c  9  1
"""

iloc

通过指定行及列索引号进行索引, 返回DataFrame对象

df.iloc[[0, 1], [1, 2]]
"""
  ii iii
a  5  9
f  3  4
"""

通过指定行及列索引号范围进行切片索引(左闭右开), 返回DataFrame对象

df.iloc[:3, 1:3]
"""
  ii iii
a  5  9
f  3  4
c  9  1
"""

ix(不建议使用)

通过指定行及列索引号范围或名字范围进行切片, 返回DataFrame对象

df.ix["a":"c", "i":"iii"]
df.ix["a":"c", 1:3]
df.ix[:3, 1:3]

tips: 只有使用 iloc 或 ix 按索引号进行切片索引时才为左闭右开, 其余全闭

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现多进程共享数据的方法分析
Dec 04 Python
详解python字节码
Feb 07 Python
Win10下python3.5和python2.7环境变量配置教程
Sep 18 Python
对python For 循环的三种遍历方式解析
Feb 01 Python
python3.7环境下安装Anaconda的教程图解
Sep 10 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
使用python实现飞机大战游戏
Mar 23 Python
使用Pycharm分段执行代码
Apr 15 Python
Python eval函数原理及用法解析
Nov 14 Python
pycharm最新激活码有效期至2100年(亲测可用)
Feb 05 Python
基于tensorflow __init__、build 和call的使用小结
Feb 26 Python
深入浅析Python中的迭代器
Jun 04 #Python
Python学习笔记之读取文件、OS模块、异常处理、with as语法示例
Jun 04 #Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 #Python
Python批量生成幻影坦克图片实例代码
Jun 04 #Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 #Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
Jun 04 #Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 #Python
You might like
php 代码优化之经典示例
2011/03/24 PHP
php学习之变量的使用
2011/05/29 PHP
PHP在网页中动态生成PDF文件详细教程
2014/07/05 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
2014/09/02 PHP
PHP实现Redis单据锁以及防止并发重复写入
2018/04/10 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
js为数字添加逗号并格式化数字的代码
2013/08/23 Javascript
js数组与字符串的相互转换方法
2014/07/09 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
js获取新浪天气接口的实现代码
2016/06/06 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
EasyUI Tree树组件无限循环的解决方法
2017/09/27 Javascript
浅谈Vue.nextTick 的实现方法
2017/10/25 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
node.js express框架简介与实现
2019/07/23 Javascript
VUE中鼠标滚轮使div左右滚动的方法详解
2020/12/14 Vue.js
python查询sqlite数据表的方法
2015/05/08 Python
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
对python 命令的-u参数详解
2018/12/03 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
python跨文件使用全局变量的实现
2020/11/17 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
印度领先的眼镜电子商务网站:Lenskart
2019/12/16 全球购物
以下的初始化有什么区别
2013/12/16 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
2016/04/28 面试题
请编程遍历页面上所有 TextBox 控件并给它赋值为 string.Empty
2015/12/03 面试题
毕业论文致谢格式模板
2015/05/14 职场文书
贫困证明怎么写
2015/06/16 职场文书
详解Alibaba Java诊断工具Arthas查看Dubbo动态代理类
2022/04/08 Java/Android
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android