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
0
投稿
猜你喜欢
- 下面列出了asp远程网页数据采集程序中经常用到的函数,很实用,特别是正则表达式过滤函数。包括了使用xmlhttp采集远程网页内容,使用ado
- 引言在观察OpenCV中某个函数在不同参数的情况下,所得到的效果的时候,我之前是改一次参数运行一次,这样做起来操作麻烦,效率低下。为了更便捷
- 注:文中未表明的地方output 输出都是基于IE6.0,其中表明FF的地方为Mozilla Firefox2.0,还要注意文中的大小写ja
- 本文较为详细的讲述了PHP图片库imagemagick的安装方法。分享给大家供大家参考。具体方法如下:1.下载ImageMagickhttp
- 这个我早就改好了一直没有放上来.现在发给大家用用注意这几个变量它们影响到提示框的效果代码:var rT=true;//允许图像过渡
- 背景:目前keras框架使用简单,很容易上手,深得广大算法工程师的喜爱,但是当部署到客户端时,可能会出现各种各样的bug,甚至不支持使用ke
- 前言matplotlib是基于Python语言的开源项目,旨在为Python提供一个数据绘图包。在使用Python matplotlib库绘
- 经常在网上冲浪的朋友是否曾注意到有些网站的鼠标不是规则的斜向上箭头的形状,而是"十"
- PyCharm是Python著名的Python集成开发环境(IDE)conda有Miniconda和Anaconda,前者应该是类似最小化版
- 1.漏洞介绍在XHTML 1.0标准下,使用特殊构造的CSS样式,在Internet Explorer 7.0
- 在DreamWeaver中编写CSS,这种编写习惯本站(twocity.cn)并不提倡,不过由于"可视化"和操作简便,使
- 几天前,想把上个月校园招聘的餐旅费报销一下。结果在公司内网的报销系统折腾了三个半小时才搞定。看看自己报销的金额:802块。觉得挺无奈,花了三
- 古巴比伦王颁布了汉摩拉比法典,刻在黑色的玄武岩,距今已经三千七百多年,你在橱窗前…熟悉吧?没错,这就是周董的爱在西元前歌词。前不久工作不是很
- 我开发了一个程序,数据在服务器端处理,通过ODBC和Access通讯。在实际应用中,调用后台存储过程不方便,花费时间也长。有什么好办法可以在
- 模块:包含定义函数和变量的python文件,可以被别的程序引入。os模块是操作系统接口模块,提供了一些方便使用操作系统相关功能函数,这里介绍
- 目录1. 理解进程2. 进程的语法3. join自定义进程类4. 守护进程总结1. 理解进程进程的概念:(process)进程就是正在运行的
- 阅读上一篇:定义网页的语言编码 用web标准设计网站,过渡的方法主要是采用XHTML+CSS,css样式表是必不可少的。这就要求所有网页设计
- 为了测试某个服务的稳定性,通常需要在服务长时间运行的情况下,监控其资源消耗情况,比如cpu和内存使用这里借助python的psutil这个包
- onactivate
- asp之家注:防止表单重复提交的方法,在客户端其实很容易实现,只要使用js让用户第一次点击提交按钮后,把提交按钮设置为disabled,这样