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 相关文章推荐
在Heroku云平台上部署Python的Django框架的教程
Apr 20 Python
python超简单解决约瑟夫环问题
May 12 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
使用Python对IP进行转换的一些操作技巧小结
Nov 09 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
Jan 23 Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 Python
Python实现个人微信号自动监控告警的示例
Jul 03 Python
django 信号调度机制详解
Jul 19 Python
python数据类型强制转换实例详解
Jun 22 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
Python根据指定文件生成XML的方法
Jun 29 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中函数的形参与实参的问题说明
2010/09/01 PHP
php学习之数据类型之间的转换介绍
2011/06/09 PHP
支持中文字母数字、自定义字体php验证码代码
2012/02/27 PHP
php中将数组转成字符串并保存到数据库中的函数代码
2013/09/29 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
yii2.0整合阿里云oss上传单个文件的示例
2017/09/19 PHP
非常不错的一个javascript 类
2006/11/07 Javascript
JavaScript toFixed() 方法
2010/04/15 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
jquery序列化表单去除指定元素示例代码
2014/04/10 Javascript
AngularJS操作键值对象类似java的hashmap(填坑小结)
2016/11/12 Javascript
Bootstrap CSS布局之图像
2016/12/17 Javascript
angular2 ng build部署后base文件路径问题详细解答
2017/07/15 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
js字符串类型String常用操作实例总结
2019/07/05 Javascript
Vue包大小优化的实现(从1.72M到94K)
2021/02/18 Vue.js
简单的连接MySQL与Python的Bottle框架的方法
2015/04/30 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
python创建文件备份的脚本
2018/09/11 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
Python适配器模式代码实现解析
2019/08/02 Python
Linux安装Python3如何和系统自带的Python2并存
2020/07/23 Python
使用sublime text3搭建Python编辑环境的实现
2021/01/12 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
为你的html5网页添加音效示例
2014/04/03 HTML / CSS
巴西手表购物网站:eclock
2019/03/19 全球购物
SneakerStudio英国:最佳运动鞋商店
2019/05/22 全球购物
将时尚融入珠宝:Adornmonde
2019/10/17 全球购物
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
大学生职业规划书的范本
2014/02/18 职场文书
小学毕业演讲稿
2014/04/25 职场文书
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
各种货币符号快捷输入
2022/02/17 杂记
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript