专栏首页AI机器学习与深度学习算法[L3]快速掌握Series~通过Series索引获取指定值

[L3]快速掌握Series~通过Series索引获取指定值

全文字数:1561字

阅读时间:8分钟

前言

由于在公众号上文本字数太长可能会影响阅读体验,因此过于长的文章,我会使用"[L1]"来进行分段。这系列将介绍Pandas模块中的Series,本文主要介绍:

  • 通过Series的索引获取值
    • 位置索引
    • 名称索引
    • 点索引

快速掌握Series系列:

[L1]快速掌握Series~创建Series

[L2]快速掌握Series~Series的属性

a

Series的索引

Series简单来说就是带有索引的一维数组,很自然的可以通过索引来获取对应的value值,我们有三种方式进行索引:

  1. 位置索引。通过0 ~ n-1[n为Series中索引个数]进行索引;
  2. 名称索引。通过传入指定的index名称来进行索引;
    1. 获取单个索引值;
    2. 获取多个索引值;
  3. 点索引。通过".index名称"的形式进行索引;

下面来分别介绍这三种索引方式以及需要注意的地方。

import pandas as pd

s = pd.Series([1,2,3,4],index = ["a","b","c","d"])
print(s)
  • 位置索引
# 位置索引
print(s[0])
print(s[-1])
print(s[2])

result:
1
4
3

此处的位置索引类似python中的list列表,不仅能够正向索引[从0开始]而且还能够反向索引[从-1开始反向索引]。

  • 名称索引
# index名称索引
#获取单个索引值
print(s["a"])
print("*"*6)
#获取多个索引值
print(s[["a","b","c"]])

result:
1
******
a    1
b    2
c    3
dtype: int64

使用名称索引不仅可以索引单个value值,也可以索引多个value值。平时用的最多的就是位置索引和名称索引,说一说使用他们的时候需要注意的地方:

  • 我们知道Series的index索引可以是任意类型,如果index为整数类型,那么位置索引就会失效。
import pandas as pd
s = pd.Series(["a","b","c","d"],index = [1,3,4,5])

# 此处使用位置索引会抛出异常KeyError
# print(s[-1])
# print(s[2])

#此处得到的结果是名称索引
print(s[3])

result:
b
  • 由于Series的index是可以重复的,对于位置索引来说无论index是否重复都与索引没有关系,但是如果使用名称索引的话,索引出来的是结果是一个具有相同index的Series对象。
import pandas as pd
s = pd.Series(["a","b","c","d"],index = [1,1,4,5])

# 此处使用的是名称索引
print(s[1])
result:
1    a
1    b
dtype: object
  • 点索引

平时使用名称索引以及位置索引足够使用。点索引使用有很多局限性:

  1. 点索引只使用于Series的index类型为非数值类型才可以使用;
  2. 如果Series中的index中有一些索引名称与Python的一些关键字或者一些函数名重名的话,会导致无法获取Series的值;
import pandas as pd

# 此时的index为数值类型
s = pd.Series(["a","b","c","d"],index = [1,2,3,4])

# 会抛出语法错误的异常SyntaxError
# print(s.2)
import pandas as pd

# 此时的index为数值类型
s = pd.Series([1,2,3,4],index = ["a","b","c","def"])

# 通过点索引获取value值
print(s.a)
# 会抛出语法错误的异常SyntaxError
# print(s.def)

result:
1

本文分享自微信公众号 - AI机器学习与深度学习算法(AI-KangChen),作者:Chenkc

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-05-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [L4]快速掌握Series~Series的切片和增删改查

    由于在公众号上文本字数太长可能会影响阅读体验,因此过于长的文章,我会使用"[L1]"来进行分段。这系列将介绍Pandas模块中的Series,本文主要介绍:

    触摸壹缕阳光
  • 机器学习入门 11-5 SVM中使用多项式特征和核函数

    本系列是《玩转机器学习教程》一个整理的视频笔记。本小节主要介绍两种能够使SVM算法解决非线性数据集的方法,使用多项式特征以及使用多项式核函数。

    触摸壹缕阳光
  • [L5]快速掌握Series~过滤Series的值和缺失值的处理

    由于在公众号上文本字数太长可能会影响阅读体验,因此过于长的文章,我会使用"[L1]"来进行分段。这系列将介绍Pandas模块中的Series,本文主要介绍:

    触摸壹缕阳光
  • Elasticsearch 中的骚操作你确定不看看?

    众所周知,ES 中的 mapping 只能在索引建立初期进行创建,且建立之后不可更改。mapping 对应的字段会映射成指定类型,未定义字段则自动映射,一般为 ...

    小闫同学啊
  • 2014年10月22日网易游戏数据库系统工程师初面

    http://blog.csdn.net/hellen1900/article/details/40421911

    bear_fish
  • Python数据分析模块 | pandas做数据分析(一):基本数据对象

    pandas有两个最主要的数据结构,分别是Series和DataFrame,所以一开始的任务就是好好熟悉一下这两个数据结构。 1、Series 官方文档: pa...

    用户1332428
  • 翻译连载 |《你不知道的JS》姊妹篇 |《JavaScript 轻量级函数式编程》- 第 3 章:管理函数的输入

    原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 第 3 章:管理函数的输入(In...

    iKcamp
  • 关于神经网络,这里有你想要了解的一切!

    随着神经网络的发展,很多过去曾被认为是难以完成的任务现在已经可以完成了例如图像识别、语音识别,在数据集中发现更深的关系等已经变得更加容易了。所以我们应该衷心感谢...

    用户3578099
  • ​关关的刷题日记99 – Leetcode 56. Merge Intervals

    关关的刷题日记99 – Leetcode 56. Merge Intervals 题目 Given a collection of intervals, mer...

    WZEARW
  • python:函数的高级特性

    菩提树下的杨过

扫码关注云+社区

领取腾讯云代金券