【Python进阶(七)】——Series数据结构

server/2024/9/24 16:11:01/

🍉CSDN小墨&晓末:https://blog.csdn.net/jd1813346972

   个人介绍: 研一|统计学|干货分享
         擅长Python、Matlab、R等主流编程软件
         累计十余项国家级比赛奖项,参与研究经费10w、40w级横向

文章目录

  • 1 Series的主要特点
  • 2 Series的定义方法
  • 3 Series的操作方法

【Python进阶(六)】——随机数与数组,建议收藏!


该篇文章主要讲解了Python数据结构之Series,首先阐述了该数据结构的特点,然后利用Python展示了其定义方法和操作方法。

1 Series的主要特点

  在Python的pandas库中,Series是一个一维的数组型对象,它能够保存任何数据类型(整数、字符串、浮点数、Python对象等),它带有一个轴标签(即索引),使得数据操作变得非常简单和直观。以下是Series的一些主要特点:

  1. 带有标签的一维数组:
    • Series对象类似于NumPy的一维数组(ndarray),但是每个元素都有一个与之相关联的索引标签。
  2. 索引:
    • Series的索引可以是任何数据类型(整数、字符串、日期时间等),这使得Series非常适合用于时间序列数据。
    • 索引是自动生成的,通常是0到N-1的整数,除非明确指定了其他索引。
  3. 数据类型:
    • Series可以保存任何数据类型,包括整数、浮点数、字符串、布尔值等。
    • 如果Series中的数据类型不一致,它会自动转换为最通用的数据类型(例如,将整数转换为浮点数以包含小数)。
  4. 数据操作:
    • 提供了许多用于数据分析和处理的方法,如算术运算、排序、筛选、分组等。
    • 可以使用索引或条件表达式来访问或修改Series中的元素。
  5. 与DataFrame的兼容性:
    • Series是pandas中更复杂的二维数据结构DataFrame的基础。
    • 可以将多个Series组合成一个DataFrame,或将DataFrame的列视为单独的Series对象进行处理。
  6. 内存效率:
    • 与纯Python列表相比,Series对象在内存使用上更加高效,因为它们使用了NumPy的底层数组结构。
  7. 缺失数据处理:
    • Series支持缺失数据(NaN),这使得它非常适合处理现实世界中的数据集,其中可能包含缺失或无效的值。
    • 提供了多种方法来处理缺失数据,如填充、删除或插值。
  8. 绘图集成:
    • Series对象与Matplotlib等绘图库无缝集成,可以轻松创建各种数据可视化图表。
  9. 与NumPy的兼容性:
    • Series的底层实现基于NumPy的数组,因此它继承了NumPy的许多功能和性能优势。
  10. 扩展性:
    • 可以使用自定义的函数和方法来扩展Series的功能,以满足特定的数据分析需求。

2 Series的定义方法

  运行程序:

import pandas as pd
mySeries1=pd.Series(data = [11,12,13,14,15,16,17],index=["a","b","c","d","e","f","g"]) 
mySeries1

  运行结果:

a    11
b    12
c    13
d    14
e    15
f    16
g    17
dtype: int64

PS :

1.pd.Series([11,12,13,14,15,16,17], index=[a,b,c,d,e,f,g]) #index为字符串时,需要双引号或单引号;

2.当data只包含一个元素时,series对象的定义支持“循环补齐”;

3.当series值多与一个时,值数和索引数需一致。

3 Series的操作方法

  运行程序:

import pandas as pd
mySeries4=pd.Series([21,22,23,24,25,26,27], index=["a","b","c","d","e","f","g"]) 
mySeries4.index#显示索引mySeries4.values  #显示值mySeries4['b']#索引b所对应值mySeries4["b"] #索引b所对应值mySeries4[["a","b","c"]]  #索引a、b、b所对应值mySeries4["a":"d"] #索引a-d所对应值mySeries4[1:4:2]#第2个-第5个,步长为2mySeries4"c" in mySeries4 #判断索引c是否在series中"h" in mySeries4#判断索引h是否在series中import pandas as pd
mySeries4=pd.Series([21,22,23,24,25,26,27], index=["a","b","c","d","e","f","g"]) 
mySeries5=mySeries4.reindex(index=["b","c","a","d","e","g","f"]) #修改索引
mySeries5 mySeries5=mySeries4.reindex(index=["b","c","a","d","e","g","f"]) #修改索引
mySeries4 mySeries5=mySeries4.reindex(index=["new1","c","a","new2","e","g","new3"])#更新索引次序,不存在则为nanmySeries5mySeries4

  运行结果:

array([[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])
array([[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]])
array([[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.],[1., 1., 1., 1., 1.]])Index(['a', 'b', 'c', 'd', 'e', 'f', 'g'], dtype='object')
array([21, 22, 23, 24, 25, 26, 27], dtype=int64)
22
22
a    21
b    22
c    23
dtype: int64
a    21
b    22
c    23
d    24
dtype: int64
b    22
d    24
dtype: int64
a    21
b    22
c    23
d    24
e    25
f    26
g    27
dtype: int64
True
False
b    22
c    23
a    21
d    24
e    25
g    27
f    26
dtype: int64
a    21
b    22
c    23
d    24
e    25
f    26
g    27
dtype: int64
new1     NaN
c       23.0
a       21.0
new2     NaN
e       25.0
g       27.0
new3     NaN
dtype: float64
a    21
b    22
c    23
d    24
e    25
f    26
g    27
dtype: int64

http://www.ppmy.cn/server/31534.html

相关文章

Visual studio调试技巧

Visual studio调试技巧 bug是什么?Debug和ReleaseDebugRelease 如何调试VS调试快捷键调试过程中查看程序信息查看临时变量的值查看内存信息查看调用堆栈查看汇编信息查看寄存器信息 编译常见错误编译型错误链接型错误运行时错误 bug是什么? bug的英文释…

LinkedList常考面试题

LinkedList是Java集合框架中的一个重要部分,它是一种线性数据结构,不同于ArrayList基于数组实现,LinkedList是基于双向链表实现的。这使得它在插入、删除操作上具有较高的效率,但随机访问元素时效率较低。以下是一些关于LinkedLis…

Debian 12 -bash: netstat: command not found 解决办法

问题表现: debian 12系统中,不能使用 netstat命令 处理办法: netstat 命令就的net-tools中,把net-tools工具安装上就好了。 apt-get install netstat 安装之后就可以使用netstat 命令了,如查询端口情况: …

从零开始学AI绘画,万字Stable Diffusion终极教程(二)

【第2期】关键词 欢迎来到SD的终极教程,这是我们的第二节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在第一节课里面,我们…

Spark使用Java读取Mysql

在Apache Spark中使用Java来读取MySQL数据库中的数据,你需要使用JDBC(Java Database Connectivity)来连接MySQL,并且通常你会使用Spark的JdbcRDD或者DataFrameReader(通过Spark SQL)来读取数据。不过&#…

C++|STL-list运用(1)

cplusplus.com/reference/list/list/?kwlist list介绍 list是一个双向循环链表,双向循环链表它的每个节点都有两个链接,一个指向前一个节点,另一个指向下一个节点,且最后一个结点指向头节点。 结点组成 1.数据域 2.指针域 &a…

深度学习之基于Matlab神经网络的活体人脸和视频人脸识别系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 人脸识别技术作为生物识别技术的一种,近年来得到了广泛的关注和应用。与传统的身份认证方…

Linux的有关权限的学习

1.认识权限在Linux中的表示 在Linux中,一切皆文件,而每个文件都会有其相对应的操作权限。那么,我们该怎么来认识他们呢? 首先我们可以看到,在每个test文件的前面都会有一个-rw-r--r--这个字符,而这个字符&…