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模拟新浪微博登陆功能(新浪微博爬虫)
Dec 24 Python
Python切片用法实例教程
Sep 08 Python
python单元测试unittest实例详解
May 11 Python
Python 遍历子文件和所有子文件夹的代码实例
Dec 21 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
使用pandas中的DataFrame数据绘制柱状图的方法
Apr 10 Python
Flask框架实现给视图函数增加装饰器操作示例
Jul 16 Python
python 拼接文件路径的方法
Oct 23 Python
Python如何应用cx_Oracle获取oracle中的clob字段问题
Aug 27 Python
Django模型中字段属性choice使用说明
Mar 30 Python
Keras之自定义损失(loss)函数用法说明
Jun 10 Python
python退出循环的方法
Jun 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
MySql中正则表达式的使用方法描述
2008/07/30 PHP
javascript 小型动画组件与实现代码
2010/06/02 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
PHP微信API接口类
2016/08/22 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
JavaScript获取GridView选择的行内容
2009/04/14 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
JavaScript的类型、值和变量小结
2015/07/09 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
jquery对所有input type=text的控件赋值实现方法
2016/12/02 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
2018/08/08 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
node解析修改nginx配置文件操作实例分析
2019/11/06 Javascript
使用JS来动态操作css的几种方法
2019/12/18 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
简单了解django缓存方式及配置
2019/07/19 Python
Python Process创建进程的2种方法详解
2021/01/25 Python
css3 条纹化和透明化表格Firefox下测试成功
2014/04/15 HTML / CSS
HTML5实现的图片无限加载的瀑布流效果另带边框圆角阴影
2014/03/07 HTML / CSS
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
水果连锁超市创业计划书
2014/01/24 职场文书
小学新教师培训方案
2014/02/03 职场文书
计生工作先进事迹
2014/08/15 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
工程服务质量承诺书
2015/04/29 职场文书