pandas DataFrame索引行列的实现
作者:elephantnose 发布时间:2023-12-16 09:52:55
标签:pandas,DataFrame,索引
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 按索引号进行切片索引时才为左闭右开, 其余全闭
来源:https://segmentfault.com/a/1190000019380372


猜你喜欢
- 本文介绍了使用Application来统计访问网站的在线人数的方法,并介绍了使用Application时应该注意的事项。首先讲明白,用ASP
- 如下所示:######### Extract all files from src_dir to des_dirdef extract_ta
- 本文实例介绍了如何使用ASP代码来读写注册表,呵呵厉害吧! 一个例子: <%Dim ReadComputerNam
- 前言需求: 必须现在需要动态创建16个list,每个list的名字不一样,但是是有规律可循,比如第一个list的名字叫:arriage_li
- 本文实例讲述了python中for语句简单遍历数据的方法。分享给大家供大家参考。具体如下:for name in ["kak&qu
- 在使用pytorch的时候,经常会涉及到两种数据格式tensor和ndarray之间的转换,这里总结一下两种格式的转换:1. tensor
- 在之前写过一篇使用python爬虫爬取电影天堂资源的文章,重点是如何解析页面和提高爬虫的效率。由于电影天堂上的资源获取权限是所有人都一样的,
- 本文介绍了 setuptools 框架的内容,它是 PEAK 的一个副项目,它提供了比 distutils 更加简单的包管理和发行功能。开始
- 先看看关于call()的官方解释,“调用一个对象的一个方法,以另一个对象替换当前对象。”,看了这样的解释,或许让你更摸不着头脑了。看例子:v
- GitPython 是一个用于操作 Git 版本库的 python 包,它提供了一系列的对象模型(库 - Repo、树 - Tree、提交
- 推荐系统中经常需要处理类似user_id, item_id, rating这样的数据,其实就是数学里面的稀疏矩阵,scipy中提供了spar
- 前言最近在出差,发现住的宾馆居然有小强。所以出差无聊之际,写了点爬虫的代码玩玩,问就是应景。本篇文章主要是爬取CSDN全站综合热榜的100个
- 安装的依赖包flaskpymysqlflask_scriptflask_migrateflask_sqlalchemy创建Flask项目(项
- 本文实例讲述了Python设计模式之模板方法模式。分享给大家供大家参考,具体如下:模板方法模式(Template Method Patter
- 首先看下Delphi单元文件基本结构:unit Unit1; //单元文件名 interface //这是接口关键
- 从照片里面获取GPS信息。可交换图像文件常被简称为EXIF(Exchangeable
- 本文讲述了Python在windows下打印彩色字体的方法。分享给大家供大家参考,具体如下:########################
- 1、安装mysql有InnoDB的插件扩展 ./configure --prefix=/usr/local/mysql --with-plu
- 如下所示:import threadingimport timesem=threading.Semaphore(4) #限制线程的最大数量为
- 天极网软件频道的图片切换特效,完全是由XHTML+CSS+JS实现的图片切换特效,弄了好半天啊!!如果您使用或者转载请别忘了加我的一个连接啊