pandas DataFrame索引行列的实现

 更新时间:2019年06月04日 10:46:54   作者:elephantnose  
这篇文章主要介绍了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 按索引号进行切片索引时才为左闭右开, 其余全闭

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python基于PycURL自动处理cookie的方法

    Python基于PycURL自动处理cookie的方法

    这篇文章主要介绍了Python基于PycURL自动处理cookie的方法,实例分析了Python基于curl操作cookie的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Python GUI框架中的PyQt详解

    Python GUI框架中的PyQt详解

    PyQt是Python语言中最强大且广泛应用的GUI框架之一,基于Qt库的Python绑定实现,本文将深入解析PyQt的核心模块,并通过代码示例展示其应用场景,感兴趣的朋友一起看看吧
    2025-03-03
  • Python 框架 FastAPI详解

    Python 框架 FastAPI详解

    FastAPI 是一个现代、快速且高性能的 Web 框架,用于 Python 3.6+,基于 Python 类型提示构建 API,它通过 Starlette 和 Pydantic 优化,支持多种 HTTP 方法、异步编程、数据验证和自动生成交互式文档,FastAPI 适合快速开发高性能、可扩展的 Web 服务
    2024-11-11
  • Python实现FLV视频拼接功能

    Python实现FLV视频拼接功能

    这篇文章主要介绍了Python实现FLV视频拼接功能,本文给大家介绍的非常详细具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • pydev使用wxpython找不到路径的解决方法

    pydev使用wxpython找不到路径的解决方法

    pydev使用wx库开发的过程中,import时碰到wx可以识别,但是其它很多函数和变量上面全部是红叉,即无法识别
    2013-02-02
  • 安装docker-compose的两种最简方法

    安装docker-compose的两种最简方法

    在本篇文章里小编给各位整理的是关于安装docker-compose的具体方法总结,有需要的朋友们参考下。
    2019-07-07
  • 使用Python绘制空气质量日历图

    使用Python绘制空气质量日历图

    这篇文章主要介绍了使用Python绘制空气质量日历图,文章基于Python绘制的相关知识展开对空气质量日历图的绘制,感兴趣的小伙伴可以参考一下
    2022-05-05
  • python遍历字符串中每一个字符的4种方式

    python遍历字符串中每一个字符的4种方式

    很多计算过程都需要每次从一个字符串中取一个字符,下面这篇文章主要给大家介绍了关于python遍历字符串中每一个字符的4种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python爬虫之urllib库详解

    Python爬虫之urllib库详解

    大家好,本篇文章主要讲的是Python爬虫之urllib库详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • Python中最常用的操作列表的几种方法归纳

    Python中最常用的操作列表的几种方法归纳

    这篇文章主要介绍了Python中最常用的操作列表的几种方法归纳,列表的方法是Python学习中最基本的知识,需要的朋友可以参考下
    2015-04-04

最新评论