从本文开始介绍pandas的相关知识。

pandas含有是数据分析工作变得更快更简单的高级数据结构和操作工具,是基于numpy构建的。

本章节的代码引入pandas约定为:import pandas as pd,另外import numpy as np也会用到。

官方介绍:pandas - Python Data Analysis Library (pydata.org)

pandas数据结构介绍:主要有两种:Series和DataFrame。本文对Series进行简单介绍。

1 Series介绍

官方文档:pandas.Series — pandas 1.3.4 documentation (pydata.org)

1.1简介

Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据结构)以及一组与之相关的数据标签(即索引)组成。

1 >>> obj = pd.Series([4, 7, -5, 3])
2 >>> obj
3 0 4
4 1 7
5 2 -5
6 3 3
7 dtype: int64

1.2表现形式

Series的字符串表现形式为:索引在左边,值在右边。若没有为数据指定索引,则会自动创建一个0到N-1(N为数据的长度)的整数型索引。可通过Series的values和index属性获取其数组表示形式和索引对象。

 1 >>> obj
2 0 4
3 1 7
4 2 -5
5 3 3
6 dtype: int64
7 >>>
8 >>> obj.index
9 RangeIndex(start=0, stop=4, step=1)
10 >>> obj.values
11 array([ 4, 7, -5, 3], dtype=int64)
12 >>>

如果希望所创建的Series带有一个可以对各个数据点进行标记的索引:

1 >>> obj2 = pd.Series([4, 5, 7, -3], index=['a', 'b', 'c', 'd'])
2 >>> obj2
3 a 4
4 b 5
5 c 7
6 d -3
7 dtype: int64
8 >>> obj2.index
9 Index(['a', 'b', 'c', 'd'], dtype='object')

也可以通过字典来创建Series。如果只传入一个字典,则结果Series中的索引就是原字典的键(有序排列)。

 1 >>> sdata = {'a':100, 'b':200, 'c':300}
2 >>> obj3 = pd.Series(sdata)
3 >>> obj3
4 a 100
5 b 200
6 c 300
7 dtype: int64
8 >>> index = ['a', 'd', 'c']
9 >>> obj4 = pd.Series(sdata, index=index)
10 >>> obj4
11 a 100.0
12 d NaN
13 c 300.0
14 dtype: float64
15 >>>

上面的例子中,索引为’d’的值为NaN,即“非数字”(not a number)。在pandas中,它用于表示确实或者NA值,使用缺失或NA表示缺失数据,另外isnull和notnull函数可用于检测缺失数据。

 1 >>> obj4
2 a 100.0
3 d NaN
4 c 300.0
5 dtype: float64
6 >>>
7 >>> pd.isnull(obj4)
8 a False
9 d True
10 c False
11 dtype: bool
12 >>> pd.notnull(obj4)
13 a True
14 d False
15 c True
16 dtype: bool

1.3索引方式

与普通NumPy数组相比,可以通过索引的方式选取Series中的单个或一组值。

1 >>> obj2['a']
2 4
3 >>> obj2[['a', 'b', 'c']]
4 a 4
5 b 5
6 c 7
7 dtype: int64
8 >>>

还可以将Series看作一个定长的有序字典,因为它是索引值到数据值的一个映射。

1 >>> 'b' in obj2
2 True
3 >>> 'e' in obj2
4 False

series的索引可以通过赋值的方式就地修改。

 1 >>> obj
2 0 4
3 1 7
4 2 -5
5 3 3
6 dtype: int64
7 >>> obj.index = ['a', 'b', 'c', 'd']
8 >>> obj
9 a 4
10 b 7
11 c -5
12 d 3
13 dtype: int64
14 >>>

1.4基本运算

NumPy数组运算(如根据布尔型数组进行过滤、标量乘法、应用数学函数等)都会保留索引和值之间的链接。

 1 >>> obj2
2 a 4
3 b 5
4 c 7
5 d -3
6 dtype: int64
7 >>> obj2[obj2 > 0]
8 a 4
9 b 5
10 c 7
11 dtype: int64
12 >>> obj2 * 2
13 a 8
14 b 10
15 c 14
16 d -6
17 dtype: int64
18 >>> np.exp(obj2)
19 a 54.598150
20 b 148.413159
21 c 1096.633158
22 d 0.049787
23 dtype: float64
24 >>>

1.5其他

对应用而言,Series最重要的一个功能是:它在算术运算中会自动对齐不同索引的数据。这个功能在后面进行讲解。

Series对象本身及其索引都有一个name属性,该属性跟pandas其他的关键功能关系非常密切。

 1 >>> obj4
2 a 100.0
3 d NaN
4 c 300.0
5 dtype: float64
6 >>> obj4.name = 'n1'
7 >>> obj4.index.name = 'pharse'
8 >>> obj4
9 pharse
10 a 100.0
11 d NaN
12 c 300.0
13 Name: n1, dtype: float64

pands基础--数据结构:Series的更多相关文章

  1. 【UOJ#228】基础数据结构练习题 线段树

    #228. 基础数据结构练习题 题目链接:http://uoj.ac/problem/228 Solution 这题由于有区间+操作,所以和花神还是不一样的. 花神那道题,我们可以考虑每个数最多开根几 ...

  2. 理解 OpenStack + Ceph (4):Ceph 的基础数据结构 [Pool, Image, Snapshot, Clone]

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  3. hrbustoj 1551:基础数据结构——字符串2 病毒II(字符串匹配,BM算法练习)

    基础数据结构——字符串2 病毒IITime Limit: 1000 MS Memory Limit: 10240 KTotal Submit: 284(138 users) Total Accepte ...

  4. hrbustoj 1545:基础数据结构——顺序表(2)(数据结构,顺序表的实现及基本操作,入门题)

    基础数据结构——顺序表(2) Time Limit: 1000 MS    Memory Limit: 10240 K Total Submit: 355(143 users) Total Accep ...

  5. 关于SparkMLlib的基础数据结构 Spark-MLlib-Basics

    此部分主要关于MLlib的基础数据结构 1.本地向量 MLlib的本地向量主要分为两种,DenseVector和SparseVector,顾名思义,前者是用来保存稠密向量,后者是用来保存稀疏向量,其创 ...

  6. Vlc基础数据结构记录

    1.  Vlc基础数据结构 hongxianzhao@hotmail.com 1.1  基础数据结构 struct vlc_object_t,相关文件为src\misc\objects.c. 定义为: ...

  7. 基础数据结构之(Binary Trees)

    从头开始刷ACM,真的发现过去的很多漏洞,特别越是基础的数据结构,越应该学习得精,无论是ACM竞赛,研究生考试,还是工程上,对这些基础数据结构的应用都非常多,深刻理解非常必要.不得不说最近感触还是比较 ...

  8. 02. Pandas 1|数据结构Series、Dataframe

    1."一维数组"Series Pandas数据结构Series:基本概念及创建 s.index  . s.values # Series 数据结构 # Series 是带有标签的一 ...

  9. uoj #228. 基础数据结构练习题 线段树

    #228. 基础数据结构练习题 统计 描述 提交 自定义测试 sylvia 是一个热爱学习的女孩子,今天她想要学习数据结构技巧. 在看了一些博客学了一些姿势后,她想要找一些数据结构题来练练手.于是她的 ...

  10. Redis——基础数据结构

    Redis提供了5种基础数据结构,分别是String,list,set,hash和zset. 1.String Redis所有的键都是String.Redis的String是动态字符串,内部结构类似J ...

随机推荐

  1. 《c#高级编程》第2章C#2.0中的更改(四)——空值类型

    一.概念 在C#中,空值类型(Nullable Types)是一种特殊的数据类型,它可以包含正常值或者一个null值.当我们需要在程序中处理可能不存在的值时,空值类型就会派上用场. 空值类型的语法形式 ...

  2. 重磅官宣:Nacos2.0 发布,性能提升 10 倍

    简介: 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并构建起强大的生态.但是随着用户深入使用,逐渐暴露一些性能问题,因此我们启动了 Nacos 2.0 的隔代产品设计,时隔 ...

  3. 阿里云混合云Apsara Stack 2.0发布 加速政企数智创新

    ​简介: 2021年10月21日,杭州 – 今日,阿里云于云栖大会正式发布Apsara Stack 2.0,从面向单一私有云场景,升级为服务大型集团云&行业云场景.新一代Apsara Stac ...

  4. 全球首款乘云而来的存储产品CDS诞生!

    ​9月22日,阿里云发布全球首款"云定义存储"(Cloud Defined Storage,CDS)产品.作为一款本地部署的分布式存储产品,阿里云CDS拥有与公共云存储相同的技术架 ...

  5. [FE] Quasar BEX 不同位置类型的 debug 调试方式

    科普:[FE] Quasar BEX 所有位置类型 types 不同类型调试,查看错误在不同的位置,如下图中的 4 个位置. Refer:https://quasar.dev/quasar-cli/d ...

  6. dotnet OpenXML 读取 PPT 内嵌 xlsx 格式 Excel 表格的信息

    在 Office 中,可以在 PPT 里面插入表格,插入表格有好多不同的方法,对应 OpenXML 文档存储的更多不同的方式.本文来介绍如何读取 PPT 内嵌 xlsx 格式的表格的方法 读取方法和 ...

  7. JavaScript实现全选选项框的功能和鼠标划入出现下拉框的功能--JavaScript实例集锦(初学)

    有一些论坛,文章后台编辑都会出现选择框的操作. 1.实现选项框全选和取消全选的功能: 代码实现: <!DOCTYPE html> <html> <head> < ...

  8. 简述 js 的代码整洁之道

    文章参考出自:https://juejin.cn/post/7224382896626778172 前言 为什么代码要整洁? 代码质量与整洁度成正比.有的团队在赶工期的时候,不注重代码的整洁,代码写的 ...

  9. Linux(四):Linux的打包和压缩详解

    关于Linux的文件操作,这里汇总一下打包和压缩的一些命令,以及命令使用的详情. 打包(归档)和压缩 归档,也称为打包,指的是一个文件或目录的集合,而这个集合被存储在一个文件中.归档文件没有经过压缩, ...

  10. 基于Vue3水印组件封装:防篡改守护!

    基于Vue 3的全新水印通用组件.这款组件不仅功能强大,而且易于集成,能够轻松为您的网页或应用添加自定义水印,有效防止内容被篡改或盗用. 在线查看效果: 原文可查看效果地址 一,编写watermark ...