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基础教程之Hello World!
Aug 29 Python
python实现提取百度搜索结果的方法
May 19 Python
python实现kMeans算法
Dec 21 Python
TensorFlow实现卷积神经网络
May 24 Python
Python封装原理与实现方法详解
Aug 28 Python
利用python修改json文件的value方法
Dec 31 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
Aug 10 Python
Python实现网页截图(PyQT5)过程解析
Aug 12 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
python中if及if-else如何使用
Jun 02 Python
Python jieba结巴分词原理及用法解析
Nov 05 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载入页面时编码的方法
2014/07/29 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
php和nginx交互实例讲解
2019/09/24 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
Vue.js实现一个todo-list的上移下移删除功能
2017/06/26 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
Angular单元测试之事件触发的实现
2020/01/20 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
vue-drawer-layout实现手势滑出菜单栏
2020/11/19 Vue.js
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python 判断矩阵中每行非零个数的方法
2019/01/26 Python
使用python接入微信聊天机器人
2020/03/31 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
python中取绝对值简单方法总结
2020/07/24 Python
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
Spongelle官网:美国的创意护肤洗护品牌
2019/05/15 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
大学生毕业自荐信
2013/10/10 职场文书
应届生法律顾问求职信
2013/11/19 职场文书
会计学自我鉴定
2014/02/06 职场文书
团干部培训方案
2014/06/03 职场文书
中药学自荐信
2014/06/15 职场文书
综治工作心得体会
2014/09/11 职场文书
服装店员工管理制度
2015/08/07 职场文书
中国梦党课学习心得体会
2016/01/05 职场文书
《雷雨》教学反思
2016/02/20 职场文书
instantclient客户端 连接oracle数据库
2022/04/26 Oracle
Go语言入门exec的基本使用
2022/05/20 Golang