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中多线程及程序锁浅析
Jan 21 Python
详解Django中的过滤器
Jul 16 Python
Python和Perl绘制中国北京跑步地图的方法
Mar 03 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
Jan 28 Python
Python实现的爬取百度贴吧图片功能完整示例
May 10 Python
python的pytest框架之命令行参数详解(上)
Jun 27 Python
Python如何调用JS文件中的函数
Aug 16 Python
django自带调试服务器的使用详解
Aug 29 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
Python实现GIF动图以及视频卡通化详解
Dec 06 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
再说下636单管机
2021/03/02 无线电
深思 PHP 数组遍历的差异(array_diff 的实现)
2008/03/23 PHP
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
php实现的读取CSV文件函数示例
2017/02/07 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
基于jQuery制作迷你背词汇工具
2010/07/27 Javascript
商城常用滚动的焦点图效果代码简单实用
2013/03/28 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
JavaScript 定时器 SetTimeout之定时刷新窗口和关闭窗口(代码超简单)
2016/02/26 Javascript
jQuery实现将div中滚动条滚动到指定位置的方法
2016/08/10 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
vue数据控制视图源码解析
2018/03/28 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
vue-cli中vue本地实现跨域调试接口
2019/01/16 Javascript
Node.JS枚举统计当前文件夹和子目录下所有代码文件行数
2019/08/23 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
Python字符转换
2008/09/06 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python3.6 +tkinter GUI编程 实现界面化的文本处理工具(推荐)
2017/12/20 Python
Python多进程并发与多线程并发编程实例总结
2018/02/08 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
Python实现剪刀石头布小游戏(与电脑对战)
2019/12/31 Python
Python : turtle色彩控制实例详解
2020/01/19 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
sklearn的predict_proba使用说明
2020/06/28 Python
英国最大的割草机购买网站:Just Lawnmowers
2019/11/02 全球购物
C语言编程练习
2012/04/02 面试题
时尚休闲吧创业计划书
2014/01/25 职场文书
2016国庆节67周年红领巾广播稿
2015/12/18 职场文书
学习党章心得体会2016
2016/01/15 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python