Pandas入门教程(四):Series数据结构——创建、索引与常用方法
一、什么是 SeriesSeries 是 Pandas 中的一个核心数据结构类似于一个一维的数组具有数据和索引。Series 可以存储任何数据类型整数、浮点数、字符串等并通过标签索引来访问元素。它的数据结构非常有用因为它可以处理各种数据类型同时保持了高效的数据操作能力比如可以通过标签来快速访问和操作数据。Series 的特点特点说明一维数组Series 中的每个元素都有一个对应的索引值索引每个数据元素都可以通过标签索引来访问默认从 0 开始的整数也可自定义数据类型可以容纳不同数据类型的元素包括整数、浮点数、字符串、Python 对象等大小不变性Series 的大小在创建后是不变的但可以通过某些操作如 append 或 delete来改变操作支持各种操作如数学运算、统计分析、字符串处理等缺失数据可以包含缺失数据Pandas 使用NaNNot a Number来表示缺失或无值自动对齐当对多个 Series 进行运算时Pandas 会自动根据索引对齐数据二、Series 的组成我们可以使用 Pandas 库来创建一个 Series 对象并且可以为其指定索引Index、名称Name以及值Values。pythonimport pandas as pd # 创建一个 Series 对象指定名称为 A值分别为 1, 2, 3, 4 # 默认索引为 0, 1, 2, 3 series pd.Series([1, 2, 3, 4], nameA) print(series) # 显式地设置索引 custom_index [1, 2, 3, 4] series_with_index pd.Series([1, 2, 3, 4], indexcustom_index, nameA) print(series_with_index)输出结果text0 1 1 2 2 3 3 4 Name: A, dtype: int64 1 1 2 2 3 3 4 4 Name: A, dtype: int64Series 的三个组成部分部分说明索引Index左侧的标签默认 0 开始值Values右侧的数据名称NameSeries 的标识可选三、创建 Series可以使用pd.Series()构造函数创建一个 Series 对象传递一个数据数组可以是列表、NumPy 数组等和一个可选的索引数组。pythonpandas.Series(dataNone, indexNone, dtypeNone, nameNone, copyFalse, fastpathFalse)参数说明参数说明data数据部分可以是列表、数组、字典、标量值等。不提供则创建空 Seriesindex索引部分用于对数据进行标记。不提供则创建默认整数索引dtype指定数据类型如np.int64、np.float64。不提供则自动推断nameSeries 的名称用于标识对象copy是否复制数据默认Falsefastpath是否启用快速路径默认False1. 从列表创建pythonimport pandas as pd a [1, 2, 3] myvar pd.Series(a) print(myvar)如果没有指定索引索引值就从 0 开始。我们可以根据索引值读取数据pythonprint(myvar[1]) # 输出 22. 指定索引pythonimport pandas as pd a [Google, Runoob, Wiki] myvar pd.Series(a, index[x, y, z]) print(myvar) print(myvar[y]) # 输出 Runoob3. 从字典创建pythonimport pandas as pd sites {1: Google, 2: Runoob, 3: Wiki} myvar pd.Series(sites) print(myvar)从上图可知字典的 key 变成了索引值。如果我们只需要字典中的一部分数据只需要指定需要数据的索引即可pythonmyvar pd.Series(sites, index[1, 2]) print(myvar)4. 设置名称pythonsites {1: Google, 2: Runoob, 3: Wiki} myvar pd.Series(sites, index[1, 2], nameRUNOOB-Series-TEST) print(myvar)5. 从 NumPy 数组创建pythonimport numpy as np s pd.Series(np.array([1, 2, 3, 4]))四种创建方式对比数据源示例索引来源列表pd.Series([1, 2, 3])默认 0, 1, 2列表 索引pd.Series([1, 2, 3], index[a,b,c])自定义字典pd.Series({a: 1, b: 2})字典的键NumPy 数组pd.Series(np.array([1, 2, 3]))默认 0, 1, 2四、Series 方法速查下面是 Series 中一些常用的方法方法名称功能描述index获取 Series 的索引values获取 Series 的数据部分返回 NumPy 数组head(n)返回 Series 的前 n 行默认为 5tail(n)返回 Series 的后 n 行默认为 5dtype返回 Series 中数据的类型shape返回 Series 的形状行数describe()返回 Series 的统计描述如均值、标准差、最小值等isnull()返回一个布尔 Series表示每个元素是否为 NaNnotnull()返回一个布尔 Series表示每个元素是否不是 NaNunique()返回 Series 中的唯一值去重value_counts()返回 Series 中每个唯一值的出现次数map(func)将指定函数应用于 Series 中的每个元素apply(func)将指定函数应用于 Series 中的每个元素常用于自定义操作astype(dtype)将 Series 转换为指定的类型sort_values()对 Series 中的元素进行排序按值排序sort_index()对 Series 的索引进行排序dropna()删除 Series 中的缺失值NaNfillna(value)填充 Series 中的缺失值NaNreplace(to_replace, value)替换 Series 中指定的值cumsum()返回 Series 的累计求和cumprod()返回 Series 的累计乘积shift(periods)将 Series 中的元素按指定的步数进行位移rank()返回 Series 中元素的排名corr(other)计算 Series 与另一个 Series 的相关性皮尔逊相关系数cov(other)计算 Series 与另一个 Series 的协方差to_list()将 Series 转换为 Python 列表to_frame()将 Series 转换为 DataFrameiloc[]通过位置索引来选择数据loc[]通过标签索引来选择数据五、综合实例pythonimport pandas as pd # 创建 Series data [1, 2, 3, 4, 5, 6] index [a, b, c, d, e, f] s pd.Series(data, indexindex) # 查看基本信息 print(索引, s.index) print(数据, s.values) print(数据类型, s.dtype) print(前两行数据, s.head(2)) # 使用 map 函数将每个元素加倍 s_doubled s.map(lambda x: x * 2) print(元素加倍后, s_doubled) # 计算累计和 cumsum_s s.cumsum() print(累计求和, cumsum_s) # 查找缺失值 print(缺失值判断, s.isnull()) # 排序 sorted_s s.sort_values() print(排序后的 Series, sorted_s)输出结果text索引 Index([a, b, c, d, e, f], dtypeobject) 数据 [1 2 3 4 5 6] 数据类型 int64 前两行数据 a 1 b 2 dtype: int64 元素加倍后 a 2 b 4 c 6 d 8 e 10 f 12 dtype: int64 累计求和 a 1 b 3 c 6 d 10 e 15 f 21 dtype: int64 缺失值判断 a False b False ...六、基本操作详解1. 访问与切片python# 指定索引创建 Series s pd.Series([1, 2, 3, 4], index[a, b, c, d]) # 获取值 value s[2] # 获取索引为 2 的值 print(s[a]) # 返回索引标签 a 对应的元素 # 获取多个值 subset s[1:4] # 获取索引为 1 到 3 的值 # 索引和值的对应关系 for index, value in s.items(): print(fIndex: {index}, Value: {value}) # 使用切片语法访问一部分 print(s[a:c]) # 返回索引标签 a 到 c 之间的元素 print(s[:3]) # 返回前三个元素2. 修改与增删python# 为特定的索引标签赋值 s[a] 10 # 将索引标签 a 对应的元素修改为 10 # 通过赋值给新的索引标签来添加元素 s[e] 5 # 在 Series 中添加一个新的元素 # 使用 del 删除指定索引标签的元素 del s[a] # 删除索引标签 a 对应的元素 # 使用 drop 方法删除一个或多个索引标签并返回一个新的 Series s_dropped s.drop([b])注意del直接修改原 Seriesdrop()返回新的 Series原数据不变。3. 基本运算python# 算术运算 result series * 2 # 所有元素乘以 2 # 过滤 filtered_series series[series 2] # 选择大于 2 的元素 # 数学函数 import numpy as np result np.sqrt(series) # 对每个元素取平方根4. 统计计算pythonprint(s.sum()) # 总和 print(s.mean()) # 平均值 print(s.max()) # 最大值 print(s.min()) # 最小值 print(s.std()) # 标准差5. 属性和方法pythonindex s.index # 获取索引 values s.values # 获取值数组 stats s.describe() # 描述统计信息 max_index s.idxmax() # 最大值的索引 min_index s.idxmin() # 最小值的索引 print(s.dtype) # 数据类型 print(s.shape) # 形状 print(s.size) # 元素个数 print(s.head()) # 前几个元素默认前 5 个 print(s.tail()) # 后几个元素默认后 5 个6. 布尔表达式pythonprint(s 2) # 返回一个布尔 Series7. 类型转换pythons s.astype(float64) # 转换为 float64 类型七、Series 注意事项注意事项说明数据有序Series 中的数据是有序的带索引的数组可以将 Series 视为带有索引的一维数组索引可重复索引可以是唯一的但不是必须的数据来源广数据可以是标量、列表、NumPy 数组等八、Series 操作流程图九、常见问题排查问题现象可能原因解决方案KeyError索引不存在检查索引标签拼写IndexError位置索引越界检查索引范围数据类型不符预期自动推断错误显式指定dtype运算结果含 NaN索引未对齐检查两个 Series 的索引del后原数据变化del是原地删除如需保留原数据用drop()切片结果与预期不符标签切片含端点标签切片s[a:c]包含 c重要区别位置切片s[1:4]不包含末端标签切片s[a:c]包含末端。十、小结本篇你全面掌握了 Pandas Series 的用法定位带标签的一维数组可存储任意数据类型。创建从列表、字典、NumPy 数组创建支持自定义索引与名称。访问位置索引、标签索引、切片、loc、iloc。方法head、tail、describe、map、apply、sort_values等。运算算术运算、数学函数、布尔过滤、统计计算。增删改赋值、del、drop。类型转换astype、to_list、to_frame。Series 是一维数据的载体也是理解 DataFrame 的基础。下一篇我们将深入学习DataFrame 数据结构掌握二维表格数据的创建与操作。

相关新闻

鸿蒙适配 dart_nostr:从密钥签名到 Relay 订阅的完整实践

鸿蒙适配 dart_nostr:从密钥签名到 Relay 订阅的完整实践

把dart_nostr这个纯 Dart 组件往 HarmonyOS 上搬,最让人上头的不是编译,而是“Dart 都能跑,鸿蒙为什么不行”这种下意识判断带来的连锁翻车。项目本身不复杂:生成一对非对称密钥、构造并签名 Nostr 事件、连上 Relay 节点、发起订…

2026/10/18 14:10:21 阅读更多 →
verl源码深度拆解:从环境搭建到核心链路与调试实战

verl源码深度拆解:从环境搭建到核心链路与调试实战

简介:面向希望在7天内快速上手verl(Volcano Engine Reinforcement Learning for LLMs)框架的开发者,这份源码包提供了从单机部署到千万级参数模型训练全流程的完整代码与配置。包内共1058个文件,以Python脚本&#xff…

2026/10/18 14:10:21 阅读更多 →
多动作并行异步DDPG:选矿浮选智能决策模型工程化实践

多动作并行异步DDPG:选矿浮选智能决策模型工程化实践

简介:本资源是一篇发表于《控制与决策》2022年第8期的学术论文PDF,面向自动化、智能优化与流程工业领域的研究生、科研人员及工程技术人员,聚焦选矿过程运行指标的动态决策难题。针对传统深度确定性策略梯度(DDPG)算法…

2026/10/18 14:09:21 阅读更多 →

最新新闻

Reflector 7.4.1.179 绿色注册版部署指南:插件集成与避坑实践

Reflector 7.4.1.179 绿色注册版部署指南:插件集成与避坑实践

简介:这是一份面向.NET开发者的反编译工具整合包,主角是经典的.NET Reflector 7.4.1.179绿色注册版,并真正集成了FileDisassembler与FileGenerator两款广受好评的插件,解决原版只能逐个查看方法、无法批量导出源码的痛点。包内共2…

2026/10/18 14:58:53 阅读更多 →
Vue权限控制实战:路由、菜单与按钮级权限完整链路

Vue权限控制实战:路由、菜单与按钮级权限完整链路

简介:这份资源面向正在开发后台管理系统的Vue前端开发者,聚焦权限控制这一核心场景,帮助解决不同角色用户只能访问被授权功能的问题。内容围绕两种主流限制方式展开:一是路由不可见,借助Vue Router的meta字段存储权限列…

2026/10/18 14:58:53 阅读更多 →
建筑施工安全技术资料如何变成项目台账?链路拆解与归档实操

建筑施工安全技术资料如何变成项目台账?链路拆解与归档实操

简介:建筑施工安全技术资料是现场安全管理的底账,而非应付检查的废纸。其核心原理是把方案、交底、检查、验收、整改五个环节串成管理链路,再按塔吊、基坑、临电等对象建立检索维度,形成“链路对象”的矩阵台账。通过统一编号、逐…

2026/10/18 14:58:53 阅读更多 →
YOLOv8骨干替换EfficientNetV2:均质架构提升小目标检测与推理性能

YOLOv8骨干替换EfficientNetV2:均质架构提升小目标检测与推理性能

1. 改造动机与方案选型1.1 YOLOv8原有骨干的瓶颈在哪里动手换主干之前,我先把YOLOv8原生CSPDarknet53的短板列了一遍。YOLOv8默认的backbone在COCO这类通用检测任务上确实够用,但一旦碰到分辨率高、小目标密集或纹理细节要求高的场景,它的问题…

2026/10/18 14:58:53 阅读更多 →
STM32F407 DCMI图像采集丢帧错位的硬件时序真相

STM32F407 DCMI图像采集丢帧错位的硬件时序真相

简介:本资源是一份基于STM32F407微控制器的高速并行12位ADC与DCMI数字摄像头接口协同开发实践方案,面向嵌入式初学者及图像采集方向进阶开发者,解决模拟信号高速采样与图像数据流同步传输的核心工程问题,适用于工业检测、智能视觉…

2026/10/18 14:58:53 阅读更多 →
《华为团队工作法》华为人才管理和薪酬激励:构建四位一体点燃员工热情的激励体系

《华为团队工作法》华为人才管理和薪酬激励:构建四位一体点燃员工热情的激励体系

本 115 页 PPT 适配企业人才管理、薪酬激励、干部管理类咨询方案与 HR 培训课件编制。基于华为人才管理体系核心实践,系统拆解人才选配、评估、干部任用、人才成长、文化锻造、薪酬激励、全面激励、健康成长八大模块。涵盖 STAR 行为面试、人才搭配四宫格、绩效能力…

2026/10/18 14:57:52 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →