Pandas Series对象的创建和基本使用(Pandas Series Object)

pandas是Python的一个第三方数据分析库,其集成了大量的数据模型和分析工具,可以方便的处理和分析各类数据。Pandas中主要对象类型有Series,DataFrame和Index。本文介绍Series对象的创建和基本用法。

文章目录

  • 一、Series对象的创建
    • 1.1 通过序列创建Series
    • 1.2 通过NumPy数组创建Series
    • 1.3 通过字典创建Series
    • 1.4 通过常量创建Series
  • 二、Series对象的引用
    • 2.1 通过标签引用
    • 2.2 通过s.get()函数引用
    • 2.3 通过.loc使用标签引用
    • 2.4 通过.iloc使用位置引用
  • 三、Series对象的修改
    • 3.1 新增元素
    • 3.2 删除元素
    • 3.3 修改元素
  • 四、Series对象的常用属性
    • 4.1 name属性
    • 4.2 size属性
    • 4.3 is_unique属性
    • 4.4 dtype属性

一、Series对象的创建

使用下面的命令可以安装pandas:

pip install pandas

首次使用时需先导入pandas模块:

import pandas as pd

在这里插入图片描述

Series对象是带标签的一维同构数组,它采用pandas中Series类构造函数创建,语法是:

s = pd.Series(data, index=index)
  • data是基础数据,可以是序列、字典、Numpy数组、常量等
  • index是标签,如果忽略则默认生成从0开始,1为步长的等差数列作为标签,即1,2,3,4……

1.1 通过序列创建Series

可以通过给pd.Series函数传入列表,元组等序列来生成Series对象。

通过列表创建Series,由于没有指定index参数,因此默认的标签是0,1,2,3,4:

s1 = pd.Series([1,2,3,4,5])

在这里插入图片描述

通过元组创建Series,并通过index参数指定标签为abcde,Index必须和元素长度相同,但可以不唯一:

s2 = pd.Series((1,2,3,4,5), index=['a','b','c','a','b'])

在这里插入图片描述

1.2 通过NumPy数组创建Series

这里先通过np.random.randn(5)生成NumPy数组对象,然后再转换为Series对象:

s3 = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])

在这里插入图片描述

1.3 通过字典创建Series

通过Python字典也可以生成Series对象,由于字典本身就是键-值对,因此键会自动作为Series对象的标签:

d = dict(a=1, b=2, c=3, d=4, e=5)
s4 = pd.Series(d)

在这里插入图片描述

使用字典创建时如果指定index对象,那么只有和index指定的索引匹配元素会被抽取出来,index中未匹配的索引会用NaN填充:

s5 = pd.Series(d, index=list('abcdx'))

在这里插入图片描述
上面例子中,字典中{‘e’:5}元素和index中索引不匹配,所以未出现在Series中。而index指定的标签’x’在字典中也无对应的键,所以用NaN(在Pandas中代表空)填充。

1.4 通过常量创建Series

如果仅指定一个常量,那么则会按照index指定的索引长度进行复制填充:

s6 = pd.Series(10, index=list('abcde'))

在这里插入图片描述

二、Series对象的引用

Series对象和普通序列一样可以通过标签或者位置对元素进行引用,还支持切片等操作。

2.1 通过标签引用

通过标签引用和Python中引用字典键的方式相同,它会返回标签对应的元素:

s6['a']

在这里插入图片描述

但如果标签不存在则会报错:

s6['x']

在这里插入图片描述

通过标签也可以进行切片,注意切片包含结尾:

s6['a':'c']

在这里插入图片描述

2.2 通过s.get()函数引用

通过s.get()函数可以通过标签引用单一元素(无法切片),但是当标签不存在时,它会返回None而不是报错,甚至可以在标签不存在时返回自定义值:

s6.get('a')

在这里插入图片描述

对于不存在的标签,定义返回999:

s6.get('x', 999)

在这里插入图片描述

2.3 通过.loc使用标签引用

Series的.loc属性也可用通过标签进行引用:

s6.loc['a']

在这里插入图片描述

2.4 通过.iloc使用位置引用

位置就是各个元素的位置编号,从0开始,与标签无关:
s6.iloc[0]
在这里插入图片描述

切片时,注意结尾是不包含的:

s6.iloc[0:2]

在这里插入图片描述
注意位置编号为2的元素并不在返回结果中,这点和.loc不同。

关于.loc和.iloc属性的详细用法和解释可以参考下面的文章:
Python 利用pandas处理CSV文件(DataFrame的基础用法)

三、Series对象的修改

Series对象创建后,我们也需要对它进行修改。

3.1 新增元素

通过指定不存在的标签和元素就可以添加新元素,这里添加一个不存在的索引’x’,其对应的值为999:

s6['x'] = 999

在这里插入图片描述

如果要将两个Series拼接起来,可以用pd.concat函数,以元组或列表的方式传入要拼接的Series对象,这里将s1和s2拼接起来:

pd.concat([s1,s2])

在这里插入图片描述

注意上面的拼接结果保留了各自的标签,使用ignore_index=True可以忽略原标签,重新生成标签:

pd.concat([s1,s2], ignore_index=True)

在这里插入图片描述

3.2 删除元素

删除元素可以在引用时使用del命令或者drop方法:

del s6['x']

在这里插入图片描述

使用drop方法删除元素’e’,注意drop方法默认是返回删除后的副本,原Series对象是不变的,再次查看元素’e’依然存在:

s6.drop('e')
s6

在这里插入图片描述

如果要在原Series上删除,需要指定inplace=True参数:

s6.drop('e', inplace=True)
s6

在这里插入图片描述

3.3 修改元素

只需要引用元素并重新赋值就可以修改元素值:

s6['a'] = 100

在这里插入图片描述

如果是切片的方式,可以同时修改多个元素值:

s6.loc['b':'d'] = 999

在这里插入图片描述

四、Series对象的常用属性

除了上面提到的.loc和.iloc,Series对象还有一些常用方便我们查询Series的相关信息。

4.1 name属性

name属性是Series名称,默认是空,你可以给这个属性赋值来对Series进行命名:

s6.name = 'ABC'

在这里插入图片描述

4.2 size属性

size属性可以查询Series中的元素个数:

s6.size

在这里插入图片描述

4.3 is_unique属性

is_unique属性可以快速判断Series中元素是否唯一,如果唯一则返回True:

s1.is_unique
s6.is_unique

在这里插入图片描述

4.4 dtype属性

dtype属性返回的是Series中元素的类型,例如下面s2的dtype就是int64(64位整型):

s2.dtype

在这里插入图片描述

由于Series是同构数组,如果加入其他类型的元素,则dtype会进行改变以兼容所有元素,下面加入一个浮点型元素,所有元素都会变为浮点型,dtype变为float64:

s2['e'] = 6.0
s2

在这里插入图片描述

再加入一个字符串元素,由于float64无法兼容字符串,Series的dtype属性自动转换为object(可以兼容所有类型数据):

s2['f'] = 'abc'
s2

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49267.shtml

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

相关文章

使用netty编写syslog日志接收服务端

使用netty编写syslog日志接收服务端 1.添加netty依赖 <dependency><groupId>io.netty</groupId><artifactId>netty-all</artifactId><version>4.1.72.Final</version> <!-- 版本号可能需要根据实际情况更新 --></dependenc…

Docker Desktop安装(通俗易懂)

1、官网 https://www.docker.com/products/docker-desktop/ 2、阿里云镜像 docker-toolbox-windows-docker-for-windows安装包下载_开源镜像站-阿里云 1. 双击安装文件勾选选项 意思就是&#xff1a; Use WSL 2 instead of Hyper-V (recommended) : 启用虚拟化&#xff0c;…

重生之“我打数据结构,真的假的?”--4.二叉树

1.对称二叉树 . - 力扣&#xff08;LeetCode&#xff09; 思路 &#xff1a; 1.设置两个队列l&#xff0c;r&#xff0c;先将root的左节点入l&#xff0c;右节点入r。 2.分别出队&#xff0c;若出队元素相同 Queuepush(&l, front->left); Queuepush(&l, front->…

调度器——DolphinScheduler讲解及安装教程

调度器——DolphinScheduler讲解及安装教程 一&#xff1a;基本讲解 Dolphin Scheduler 1、开源的分布式任务调度系统 2、支持多种任务类型&#xff0c;包括Shell、Spark、Hive等 3、灵活的任务调度功能和友好的Web界面&#xff0c;方便管理和监控任务的执行情况 架构 操作系…

idea 自动生成pojo类

找到这个View>Tool Windows>Database配置数据库 配置好后刷新&#xff0c;查看是否连接上表 然后找到 点击后选择你将要生成的pojo需要保存到哪个文件&#xff0c;然后再次点击&#xff0c;就生成好了&#xff0c;然后自己稍作修改即可使用该pojo类了

Vue3可媲美Element Plus Tree组件实战之移除节点

Element Plus Tree自定义节点内容示例中介绍了移除节点的用法&#xff0c;个人觉得作为提供给用户API&#xff0c;应该遵循迪米特法则&#xff0c;把功能实现的细节封装在组件内部&#xff0c;而提供给用户最简单的操作方式&#xff0c;同时在此基础上支持用户的扩展。 因此&a…

【python学习】思考-如何在PyCharm中编写一个简单的Flask应用示例以及如何用cProfile来对Python代码进行性能分析

引言 Python中有两个流行的Web框架&#xff1a;Django和Flask。Django是一个高级的Python Web框架&#xff0c;它鼓励快速开发和干净、实用的设计&#xff1b;Flask是一个轻量级的Web应用框架&#xff0c;适用于小型到大型应用。以下是使用Flask创建一个简单应用的基本步骤cPro…

从工业到航空:旋转花键跨行业的多样用途解析!

旋转花键是一种新型的高效传动元件&#xff0c;主要由内花键和外花键组成。内花键和外花键之间放置着一排排滚珠&#xff0c;当内花键和外花键相对旋转时&#xff0c;滚珠在内、外花键之间滚动&#xff0c;从而实现动力的传递。 旋转花键的基本功能主要是用于连接轴和套的旋转部…

mmdetection训练后评估指标,验证Loss

项目场景&#xff1a; 对mmdetection框架下训练好的log.json文件进行评估。 问题描述 使用框架底下自带的评估文件&#xff0c;不能对loss进行评估。也就是文件&#xff1a;tools/analysis_tools/analyze_logs.py 解决方案&#xff1a; 自己做了评估loss的代码&#xff0c;目…

力扣94题(java语言)

题目 思路 使用一个栈来模拟递归的过程&#xff0c;以非递归的方式完成中序遍历(使用栈可以避免递归调用的空间消耗)。 遍历顺序步骤&#xff1a; 遍历左子树访问根节点遍历右子树 package algorithm_leetcode;import java.util.ArrayList; import java.util.List; import…

重磅发布:OpenAI宣布推出AI驱动的搜索引擎SearchGPT,将与Google和Perplexity展开竞争|TodayAI

OpenAI宣布推出其备受期待的AI驱动搜索引擎SearchGPT。该搜索引擎能够实时访问互联网信息&#xff0c;并将作为原型在有限范围内发布&#xff0c;计划最终将其功能整合到ChatGPT中。 SearchGPT的功能特点 SearchGPT是一个具有实时互联网信息访问能力的AI驱动搜索引擎。它的界面…

轨道式智能巡检机器人,助力综合管廊安全运维

1 引言 当前城市综合管廊建设已经成为世界范围内的发展趋势&#xff0c;2017年5月住建部、发改委联合发布《全国城市市政基础设施建设“十三五”规划》&#xff0c;截至2017年4月底国内地下综合管廊试点项目已开工建设687 km&#xff0c;建成廊体260 km&#xff0c;完成投资40…

用python程序发送文件(python实例二十六)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.文件上传 3.1 代码构思 3.2 服务端代码 3.3 客户端代码 3.4 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具…

C++图网结构算法

目录 一.迪杰斯特拉算法&#xff08;dijkstra&#xff09; 1.实现原理&#xff1a; 2.代码实现&#xff1a; 3.例题&#xff1a; 二.spfa算法&#xff1a; 1.实现原理&#xff1a; 2.代码实现&#xff1a; 3.例题&#xff1a; 三.贝尔曼福特&#xff08;bellman_ford&…

【嵌入式硬件】快衰减和慢衰减

1.引语 在使用直流有刷电机驱动芯片A4950时,这款芯片采用的是PWM控制方式,我发现他的正转、反转有两种控制方式,分别是快衰减和慢衰减。 2.理解 慢衰减:相当于加在电机(感性原件)两端电压消失,将电机两端正负短接。 快衰减:相当于加在电机(感性原件)两端电压消失,将电机…

AcWing-差分矩阵

insert函数影响范围&#xff0c;在b差分数组这样操作影响到是a里面的&#xff0c;所以下图的矩阵表示的是a数组 b[x1][y1]c;会导致a里面仅绿色范围的a[i][j]c b[x1][y21]-c;会导致a里面仅黄色范围的a[i][j]-c b[x21][y1]-c;会导致a里面仅蓝色范围的a[i][j]-c b[x21][y21]c;会导…

什么情况下的网站要使用CDN加速呢?

CDN的全称是Content Delivery Network&#xff0c;即内容分发网络。 CDN的通俗理解就是网站加速&#xff0c;CPU均衡负载&#xff0c;可以解决跨运营商&#xff0c;跨地区&#xff0c;服务器负载能力过低&#xff0c;带宽过少等带来的网站打开速度慢等问题。 原理就是在客户端…

Java聚合快递系统对接云洋系统快递小程序系统源码

&#x1f680; "聚合快递系统"无缝对接云洋系统&#xff0c;快递小程序新体验&#xff01;&#x1f4e6; &#x1f69a; 开篇&#xff1a;快递管理新纪元&#xff0c;一键接入云洋系统&#xff01; 你是否还在为繁琐的快递管理而头疼&#xff1f;多个快递公司账号切…

新手必备:iPhone新机官网验机流程详解

目录 一、准备工作 二、外包装检查 三、序列号查询 四、开箱验机 五、开机验机 六、功能检测 七、售后服务验证 八、总结 一、准备工作 检查包裹&#xff1a;确保快递包裹完好无损。准备录像设备&#xff1a;使用另一台设备录制整个验机过程&#xff0c;以防日后发生纠…