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中的元类编程入门指引
Apr 15 Python
python opencv之SURF算法示例
Feb 24 Python
Python使用matplotlib绘制余弦的散点图示例
Mar 14 Python
Python过滤txt文件内重复内容的方法
Oct 21 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
Python中查看变量的类型内存地址所占字节的大小
Jun 26 Python
django 邮件发送模块smtp使用详解
Jul 22 Python
python SVD压缩图像的实现代码
Nov 05 Python
使用django和vue进行数据交互的方法步骤
Nov 11 Python
Python使用graphviz画流程图过程解析
Mar 31 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python可视化 matplotlib画图使用colorbar工具自定义颜色
Dec 07 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
BBS(php & mysql)完整版(二)
2006/10/09 PHP
我的群发邮件程序
2006/10/09 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
PHP和javascript常用正则表达式及用法实例
2014/07/01 PHP
php项目中百度 UEditor 简单安装调试和调用
2015/07/15 PHP
使用PHP uniqid函数生成唯一ID
2015/11/18 PHP
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
jquery查找父元素、子元素(个人经验总结)
2014/04/09 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
node.js开发中使用Node Supervisor实现监测文件修改并自动重启应用
2014/11/04 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
Angular2入门--架构总览
2017/03/29 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
JavaScript事件概念详解(区分静态注册和动态注册)
2021/02/05 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
Python切片工具pillow用法示例
2018/03/30 Python
基于tensorflow加载部分层的方法
2018/07/26 Python
基于Python函数和变量名解析
2019/07/19 Python
Pandas0.25来了千万别错过这10大好用的新功能
2019/08/07 Python
python实现的生成word文档功能示例
2019/08/23 Python
python环境下安装opencv库的方法
2020/03/05 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
Solaris操作系统的线程机制
2015/07/28 面试题
化工专业推荐信范文
2013/11/28 职场文书
大学生职业生涯规划书汇总
2014/03/20 职场文书
绿色环保标语
2014/06/12 职场文书
志愿者爱心公益活动策划方案
2014/09/15 职场文书
公务员个人总结
2015/02/12 职场文书
就业推荐表院系意见
2015/06/05 职场文书
mysql分表之后如何平滑上线详解
2021/11/01 MySQL