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 相关文章推荐
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
Python_LDA实现方法详解
Oct 25 Python
django从请求到响应的过程深入讲解
Aug 01 Python
python修改字典键(key)的方法
Aug 05 Python
浅析Django 接收所有文件,前端展示文件(包括视频,文件,图片)ajax请求
Mar 09 Python
pandas分组聚合详解
Apr 10 Python
python如何绘制疫情图
Sep 16 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
用Python写一个简易版弹球游戏
Apr 13 Python
python中pd.cut()与pd.qcut()的对比及示例
Jun 16 Python
python数字图像处理:图像简单滤波
Jun 28 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学习教程之第1天
2008/06/15 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
分享php邮件管理器源码
2016/01/06 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
javascript OFFICE控件测试代码
2009/12/08 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
2011/12/26 Javascript
Js制作简单弹出层DIV在页面居中 中间显示遮罩的具体方法
2013/08/08 Javascript
AngularJS入门教程(二):AngularJS模板
2014/12/06 Javascript
在JavaScript中使用对数Math.log()方法的教程
2015/06/15 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
bootstrap daterangepicker双日历时间段选择控件详解
2017/06/15 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
JavaScript实现旋转轮播图
2020/08/18 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
js中的reduce()函数讲解
2019/01/18 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
分析Python的Django框架的运行方式及处理流程
2015/04/08 Python
python使用psutil模块获取系统状态
2016/08/27 Python
Python 多线程实例详解
2017/03/25 Python
用十张图详解TensorFlow数据读取机制(附代码)
2018/02/06 Python
Python lambda函数基本用法实例分析
2018/03/16 Python
python指定写入文件时的编码格式方法
2018/06/07 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
python 字典操作提取key,value的方法
2019/06/26 Python
捐赠仪式主持词
2014/03/19 职场文书
事业单位年度考核评语
2014/12/31 职场文书
二审代理词范文
2015/05/25 职场文书
中秋晚会致辞
2015/07/31 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers