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 28 Python
sublime text 3配置使用python操作方法
Jun 11 Python
Python利用递归和walk()遍历目录文件的方法示例
Jul 14 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
Python向MySQL批量插数据的实例讲解
Mar 31 Python
python爬取网页内容转换为PDF文件
Jul 28 Python
python 读取文件并替换字段的实例
Jul 12 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python二进制文件的转译详解
Jul 03 Python
Python3 main函数使用sys.argv传入多个参数的实现
Dec 25 Python
tensorflow 只恢复部分模型参数的实例
Jan 06 Python
python3访问字典里的值实例方法
Nov 18 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/03/27 PHP
php中将数组存到文件里的实现代码
2012/01/19 PHP
解析mysql 表中的碎片产生原因以及清理
2013/06/22 PHP
php全角字符转换为半角函数
2014/02/07 PHP
php解析json数据实例
2014/08/19 PHP
php分享朋友圈的实现代码
2019/02/18 PHP
PHP 实现base64编码文件上传出现问题详解
2020/09/01 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
JS文本框默认值处理详解
2013/07/10 Javascript
JavaScript中圆括号()和方括号[]的特殊用法疑问解答
2013/08/06 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
使用RequireJS库加载JavaScript模块的实例教程
2016/06/06 Javascript
JS给Array添加是否包含字符串的简单方法
2016/10/29 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
2017/05/11 Javascript
在微信小程序中保存网络图片
2019/02/12 Javascript
Vue中computed、methods与watch的区别总结
2019/04/10 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
Layui给switch添加响应事件的例子
2019/09/03 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
python脚本实现统计日志文件中的ip访问次数代码分享
2014/08/06 Python
Python获取邮件地址的方法
2015/07/10 Python
python中函数默认值使用注意点详解
2016/06/01 Python
浅析Python中的for 循环
2016/06/09 Python
PythonWeb项目Django部署在Ubuntu18.04腾讯云主机上
2019/04/01 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
外贸学院会计专业应届生求职信
2013/11/14 职场文书
回门宴答谢词
2014/01/13 职场文书
迟到检讨书900字
2014/01/14 职场文书
党员作风建设整改方案
2014/10/27 职场文书
2015年预备党员自我评价
2015/03/04 职场文书
《从现在开始》教学反思
2016/02/16 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang