pandas DataFrame索引行列

栏目: 数据库 · 发布时间: 6年前

内容简介:python版本: 3.6pandas版本: 0.23.4索引行有三种方法,分别是

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: 只有使用 ilocix 按索引号进行切片索引时才为左闭右开, 其余全闭


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

决战618:探秘京东技术取胜之道

决战618:探秘京东技术取胜之道

京东集团618作战指挥中心 / 电子工业出版社 / 2017-11 / 99

《决战618:探秘京东技术取胜之道》以京东技术团队备战618为主线,集合京东数百位技术专家,对京东所有和618相关的关键技术系统进行了一次全面的梳理和总结,是京东技术体系的智慧结晶。 《决战618:探秘京东技术取胜之道》从前端的网站、移动入口到后端的结算、履约、物流、供应链等体系,系统展示了京东最新的技术成就。同时,也涵盖了京东正在充分运用大数据、人工智能等先进技术对所有技术体系架构进行整体......一起来看看 《决战618:探秘京东技术取胜之道》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具