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实现的系统实用log类实例
Jun 30 Python
Python中datetime模块参考手册
Jan 13 Python
分析python请求数据
Aug 19 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
django 外键model的互相读取方法
Dec 15 Python
详解小白之KMP算法及python实现
Apr 04 Python
python仿抖音表白神器
Apr 08 Python
Python完全识别验证码自动登录实例详解
Nov 24 Python
Python:type、object、class与内置类型实例
Dec 25 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
May 03 Python
基于Python实现简单学生管理系统
Jul 24 Python
python 如何执行控制台命令与操作剪切板
May 20 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批量生成缩略图的代码
2008/07/19 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
JS 容错处理代码, 屏蔽错误信息
2021/03/09 Javascript
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
动态JavaScript所造成一些你不知道的危害
2016/09/25 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
无限循环轮播图之运动框架(原生JS实现)
2017/10/01 Javascript
ajax前台后台跨域请求处理方式
2018/02/08 Javascript
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
微信小程序搭建(mpvue+mpvue-weui+fly.js)的详细步骤
2018/09/18 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
微信小程序实现语音识别转文字功能及遇到的坑
2019/08/02 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
举例讲解Python编程中对线程锁的使用
2016/07/12 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
python numpy格式化打印的实例
2018/05/14 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
Python基于WordCloud制作词云图
2019/11/29 Python
详解python tkinter 图片插入问题
2020/09/03 Python
python实现按日期归档文件
2021/01/30 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
CSS3实现文字波浪线效果示例代码
2016/11/20 HTML / CSS
canvas仿写贝塞尔曲线的示例代码
2017/12/29 HTML / CSS
Europcar德国:全球汽车租赁领域的领导者
2018/08/15 全球购物
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
什么是.net的Remoting技术
2016/07/08 面试题
新学期开学标语
2014/06/30 职场文书
会议简报格式范文
2015/07/20 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
详解Spring Security中的HttpBasic登录验证模式
2022/03/17 Java/Android