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

🍉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.mzph.cn/bicheng/6335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

牛客Xorto

Xorto 题目描述 给定一个长度为n的整数数组&#xff0c;问有多少对互不重叠的非空区间&#xff0c;使得两个区间内的数的异或和为0。 输入描述: 第一行一个数n表示数组长度&#xff1b; 第二行n个整数表示数组&#xff1b; 1<n<1000,0<数组元素<100000。 输出…

PS 2018

软件安装 文件太大&#xff0c;分批上传了&#xff0c;后续下载下来文件目录是这样的&#xff0c; 三个文件夹.7z 分批上传&#xff0c;exe也压缩分批上传&#xff0c; 其中products文件夹太大&#xff0c;里面子目录继续压缩分批上传 都下好了&#xff0c;就exe执行安装就行…

如何使用提示测试为LLMs构建单元测试?

原文地址&#xff1a;how-to-build-unit-tests-for-llms-using-prompt-testing 确保您的人工智能交付&#xff1a;快速测试完美生成应用程序的基本指南 2024 年 4 月 26 日 如果你曾经编写过软件&#xff0c;你就会知道测试是开发过程中必不可少的一部分。特别是单元测试&#…

Git推送本地项目到gitee远程仓库

Git 是一个功能强大的分布式版本控制系统&#xff0c;它允许多人协作开发项目&#xff0c;同时有效管理代码的历史版本。开发者可以克隆一个公共仓库到本地&#xff0c;进行更改后将更新推送回服务器&#xff0c;或从服务器拉取他人更改&#xff0c;实现代码的同步和版本控制。…

String str = new String(“Hello, World!“);

在Java中&#xff0c;当你执行 String str new String("Hello, World!"); 这行代码时&#xff0c;实际上发生了几件事情&#xff1a; 字符串常量池中的字符串&#xff1a;首先&#xff0c;Java会检查字符串字面量 "Hello, World!" 是否已经在字符串常量池…

BUUCTF:Web 解析(一)

前言 Buuctf Web 是一个在线安全挑战平台&#xff0c;旨在提高参与者对网络安全的理解和实践能力。本文将详细介绍 Buuctf Web 的特点、挑战和机遇&#xff0c;帮助读者更好地了解这一领域。 一、Buuctf Web 的特点 多样化的挑战场景&#xff1a;Buuctf Web 提供了多种挑战场…

C++中的priority_queue模拟实现

目录 priority_queue模拟实现 priority_queue类定义 priority_queue构造函数 priority_queue类push()函数 priority_queue类pop()函数 priority_queue类size()函数 priority_queue类empty()函数 priority_queue类top()函数 仿函数与priority_queue类模拟实现 仿函数 …

金属表面粗糙度对信号的影响

在进行PCB的传输线设计时&#xff0c;如果希望仿真结果更加贴合于实际的效果&#xff0c;就需要考虑很多的附加因素&#xff0c;比如&#xff0c;真实的叠构参数、介电常数、损耗角正切值、蚀刻因子、金属表面粗糙度、玻纤效应等&#xff0c;在常规的信号仿真中&#xff0c;前三…

数据结构---第十天(选择题)

121.当数据库损坏时&#xff0c;数据库管理员可通过&#xff08;&#xff09;恢复数据库 A.事务日志文件 B.主数据文件 C.DELETE语句 D.联机帮助文件 122.下列选项不属于表的操作权限是&#xff08;&#xff09; A.EXECUTE B.UPDATE C.SELECT D.DELETE 123.用于数据库恢…

springboot整合mybatis配置多数据源(mysql/oracle)

目录 前言导入依赖坐标创建mysql/oracle数据源配置类MySQLDataSourceConfigOracleDataSourceConfig application.yml配置文件配置mysql/oracle数据源编写Mapper接口编写Book实体类编写测试类 前言 springboot整合mybatis配置多数据源&#xff0c;可以都是mysql数据源&#xff…

修改conda源和虚拟环境路径

1、修改conda默认源 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda config --set show_channel_urls yes2、修改conda默认虚拟环境路…

基于RK1126的小型化低功耗AI相机,支持人体特征识别、人脸特征识别、案例帽识别等

提供可定制的⼀套 AI相机软硬件开发平台&#xff0c; 硬件采⽤ RockchipRV1126处理器解决 ⽅案&#xff0c;可选择搭配 SonyIMX系列传感器&#xff0c;POE供电与数据传输&#xff0c;采⽤ 38板标准结构设计&#xff0c;快速按需定制外壳&#xff0c;⽀撑从开发到验证到批量⽣产…

C#知识|事件集中响应,多个按钮关联同一事件(实例练习)

哈喽&#xff0c;你好&#xff0c;我是雷工&#xff01; 本节学习窗体Controls集合、控件事件的统一关联及如何优化重复代码。 01 事件集中响应 原理&#xff1a;就是相同的控件&#xff0c;可以关联同一个事件响应方法。 02 示例演示 2.1、示例功能 该示例实现窗体中选择…

嵌入式硬件中优化设计PCB提高焊接质量方法

随着电子技术的飞速发展,电子元器件的小型化、微型化、间距为0.3mm~0.5mm高密度的芯片越来越普遍,对电子焊接技术的要求也就越来越高。虽然现在有了更精密的贴片机可以代替人工焊接,但影响焊接质量的因素太多。本文将从贴片焊接的角度,介绍了几点PCB设计时需要注意的要点,…

基于php+mysql+html简单图书管理系统

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、Php、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…

Springboot图片上传【本地+oss】

文章目录 1 前端组件页面2 本地上传3 上传到阿里云oss3.1申请开通账号&#xff0c;做好先导准备3.2 开始使用 1 前端组件页面 使用的VueElement组件 在线cdn引入&#xff1a; <script src"https://cdn.bootcdn.net/ajax/libs/vue/2.7.16/vue.js"></script&…

ubuntu开启zram彻底解决高I/O引起的卡顿,复制文件无比流畅

环境: Ubuntu 22.04.3 LTS ZRAM 的原理是&#xff1a; 将一块内存区域作为虚拟的块设备,压缩页面交换数据,存储在内存中,释放物理内存空间可用的物理内存就能随之变多 开启/加载 zRAM 模块 sudo modprobe zram num_devices1 lsmod | grep zram安装zram-config sudo apt in…

Typescript语法

常量声明 let用于声明变量&#xff0c;而const用于声明常量。两者的区别是变量在赋值后可以修改&#xff0c;而常量在赋值后便不能修改。 const b:number 200; 类型判断 如果一个变量或常量的声明包含了初始值&#xff0c;TS便可以根据初始值进行类型判断&#xff0c;此时…

IP协议的TTL解析(定义、执行、用途)

基本定义 ttl定义的目的是为了让数据包能不要在网上存活太久。为什么呢&#xff1f;最初的原因&#xff1a; 如果出现了路由环路会怎样&#xff1f; 其实也简单&#xff1a; 一个包会在网络里一直转来转去&#xff0c;永远不会被丢弃。网络里会慢慢堆积起垃圾&#xff0c;不断…