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中几种重定向方法
Apr 28 Python
Python检测字符串中是否包含某字符集合中的字符
May 21 Python
Python算术运算符实例详解
May 31 Python
pandas值替换方法
Jul 10 Python
Windows 64位下python3安装nltk模块
Sep 19 Python
python 实现倒排索引的方法
Dec 25 Python
PyCharm无法引用自身项目解决方式
Feb 12 Python
python matplotlib 绘图 和 dpi对应关系详解
Mar 14 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
python 负数取模运算实例
Jun 03 Python
Python2与Python3关于字符串编码处理的差别总结
Sep 07 Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 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
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
PHP基于MySQLI函数封装的数据库连接工具类【定义与用法】
2017/08/11 PHP
json简单介绍
2008/06/10 Javascript
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
js实现在文本框光标处添加字符的方法介绍
2012/11/24 Javascript
如何在一个页面显示多个百度地图
2013/04/07 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
卸载安装Node.js与npm过程详解
2016/08/15 Javascript
js简单正则验证汉字英文及下划线的方法
2016/11/28 Javascript
jquery.validate.js 多个相同name的处理方式
2017/07/10 jQuery
js获取form表单中name属性的值
2019/02/27 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
JavaScript简单编程实例学习
2020/02/14 Javascript
详解Django框架中用户的登录和退出的实现
2015/07/23 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
python中os模块详解
2016/10/14 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
详解Python连接MySQL数据库的多种方式
2019/04/16 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
python turtle工具绘制四叶草的实例分享
2020/02/14 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
使用pymysql查询数据库,把结果保存为列表并获取指定元素下标实例
2020/05/15 Python
关于Theano和Tensorflow多GPU使用问题
2020/06/19 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
Perfume’s Club澳大利亚官网:西班牙领先的在线美容店
2021/02/01 全球购物
syb养殖创业计划书
2014/01/09 职场文书
财务部总监岗位职责
2014/03/12 职场文书
2014法制宣传日活动总结
2014/07/09 职场文书
离婚协议书范文2015
2015/01/26 职场文书
幽默导游词开场白
2015/05/29 职场文书
活动新闻稿范文
2015/07/17 职场文书
关于办理居住证的介绍信模板
2019/11/27 职场文书
怎么用Python识别手势数字
2021/06/07 Python