头歌-Pandas基础-第1关:从字典到Series——构建高效数据处理基石

发布时间:2026/9/28 15:37:22

头歌-Pandas基础-第1关:从字典到Series——构建高效数据处理基石
1. 为什么需要从字典转向Series当你第一次接触Pandas时可能会疑惑Python自带的字典dict已经很好用了为什么还要学习Series我刚开始用Pandas时也有同样的困惑直到处理真实数据时才明白两者的差异。字典就像一本随意涂鸦的笔记本虽然能记录数据但缺乏结构化操作能力。比如你想计算所有值的平均值需要写循环data {A: 85, B: 90, C: 78} avg sum(data.values()) / len(data) # 需要手动计算而Series是专业的数据容器内置了数十种统计方法import pandas as pd s pd.Series(data) print(s.mean()) # 直接调用方法更关键的是Series有三大杀手锏向量化运算不用循环就能批量处理数据智能对齐不同Series运算时会自动按索引匹配缺失值处理自动处理NaN值避免程序崩溃举个例子当我们需要合并两个数据源时sales_q1 {苹果: 120, 香蕉: 80} sales_q2 {苹果: 150, 橙子: 60} # 字典需要手动处理 merged {} for k in set(sales_q1) | set(sales_q2): merged[k] sales_q1.get(k, 0) sales_q2.get(k, 0) # Series自动对齐 s1 pd.Series(sales_q1) s2 pd.Series(sales_q2) merged s1.add(s2, fill_value0)2. 创建Series的三种核心方法2.1 从列表创建这是最基础的创建方式适合已有结构化数据的情况temps [22.3, 24.5, 19.8, 21.6] s pd.Series(temps)默认会生成0-N的整数索引就像这样0 22.3 1 24.5 2 19.8 3 21.6 dtype: float64我经常用这种方式处理传感器数据。比如最近做的智能家居项目温度传感器每5分钟采集一次数据直接转成Series就能做时序列分析。2.2 从字典创建这是最符合直觉的方式键自动变成索引student_scores {张三: 85, 李四: 92, 王五: 78} scores pd.Series(student_scores)输出会保留字典的键值对应关系张三 85 李四 92 王五 78 dtype: int64踩坑提醒当字典键和index参数冲突时Pandas会优先采用index。比如pd.Series({A:1, B:2}, index[B,C])输出是B 2.0 C NaN # 原始字典没有C键2.3 从标量值创建当需要创建相同值的序列时s pd.Series(25, index[a,b,c])这在初始化数据时特别有用比如创建全为0的缓冲数组a 25 b 25 c 25 dtype: int643. Series的索引技巧大全3.1 基础索引和字典类似的键值访问s pd.Series([10,20,30], index[x,y,z]) print(s[y]) # 输出20但比字典更强的是切片功能print(s[x:z]) # 包含末端输出x 10 y 20 z 30 dtype: int643.2 位置索引有时候我们更关心数据的位置print(s.iloc[1]) # 输出20 print(s.iloc[0:2]) # 不包含末端3.3 布尔索引这是筛选数据的利器temps pd.Series([22, 25, 19, 28, 21]) print(temps[temps 23])输出1 25 3 28 dtype: int643.4 多级索引处理复杂数据时会用到index [(北京,2020), (北京,2021), (上海,2020)] data [2150, 2250, 1980] s pd.Series(data, indexpd.MultiIndex.from_tuples(index))现在可以这样查询print(s[北京, 2021]) # 输出22504. Series的实战应用案例4.1 数据清洗处理真实数据时经常遇到缺失值sales pd.Series({一月:150, 二月:None, 三月:180}) cleaned sales.fillna(sales.mean()) # 用均值填充缺失4.2 数据转换快速计算统计量print(sales.describe())输出包含计数、均值、标准差等count 2.000000 mean 165.000000 std 21.213203 min 150.000000 25% 157.500000 50% 165.000000 75% 172.500000 max 180.000000 dtype: float644.3 数据可视化一行代码生成图表sales.plot(kindbar, title月度销售额)5. 性能优化技巧当处理大型Series时这些技巧可以提升10倍性能指定dtype避免自动类型推断的开销pd.Series([1,2,3], dtypeint8)使用NumPy数组比列表更快import numpy as np pd.Series(np.arange(1000000))避免链式索引用loc代替多次索引s[s 5][s 10] # 不推荐s.loc[(s 5) (s 10)] # 推荐最近处理一个包含百万级温度数据的项目这些优化让处理时间从12秒降到了0.8秒。

相关新闻

分数阶微积分MATLAB+Simulink可运行实例:含函数源码与仿真模型

分数阶微积分MATLAB+Simulink可运行实例:含函数源码与仿真模型

2026/9/28 15:36:01

本文还有配套的精品资源,点击获取 简介:一套即开即用的分数阶微积分仿真资源,包含核心MATLAB函数new_fod.m和配套Simulink模型lie.mdl。new_fod.m支持任意实数阶次的微分或积分运算,可灵活设置阶次alpha、采样时间Ts和滤波器长…

卡美德生物科普Phosphatidylserine(磷脂酰丝氨酸)

卡美德生物科普Phosphatidylserine(磷脂酰丝氨酸)

2026/9/28 15:34:42

在人体细胞生物学与脂质代谢研究领域,磷脂酰丝氨酸(Phosphatidylserine,简称PS)是维持细胞膜结构与功能完整性的重要分子。作为一种天然存在的带负电荷的甘油磷脂,PS广泛分布于哺乳动物的细胞膜中,尤其在大…

卡美德生物科普PCSK9(前蛋白转化酶枯草溶菌素9)

卡美德生物科普PCSK9(前蛋白转化酶枯草溶菌素9)

2026/9/8 15:49:54

在心血管疾病的防治与脂质代谢研究领域,PCSK9(前蛋白转化酶枯草溶菌素9)无疑是近年来备受瞩目的明星靶点。作为一种主要由肝脏合成的分泌型丝氨酸蛋白酶,PCSK9在调控血液中低密度脂蛋白胆固醇(LDL-C)水平方…

CANN/GE ACL数据集缓冲区添加函数

CANN/GE ACL数据集缓冲区添加函数

2026/9/28 4:08:17

aclmdlAddDatasetBuffer 【免费下载链接】ge GE(Graph Engine)是面向昇腾的图编译器和执行器,提供了计算图优化、多流并行、内存复用和模型下沉等技术手段,加速模型执行效率,减少模型内存占用。 GE 提供对 PyTorch、Te…

用ffmpeg高效批量调整图片尺寸的实战指南

用ffmpeg高效批量调整图片尺寸的实战指南

2026/9/27 1:30:29

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

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱

2026/9/28 2:15:29

Transformers 音频特征提取工具库 audio_utils 全解析:从 Mel 刻度换算到对数 Mel 频谱 【免费下载链接】transformers 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and mu…

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南

2026/9/28 3:14:54

RustFS 多节点集群重启与滚动升级实战:Readiness、Quorum 与 Degraded 模式完全指南 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system sup…

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

Java Integer缓存揭秘:128陷阱原理、避坑与面试全解

2026/9/28 3:58:00

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

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据

2026/9/28 3:47:14

RustFS Scanner 数据用量发布权威性决策:配额准入如何获得可用的权威依据 【免费下载链接】rustfs 🚀2.3x faster than MinIO for 4KB object payloads. RustFS is an open-source, S3-compatible high-performance object storage system supporting mi…

远程协作的工作台整理

远程协作的工作台整理

2026/9/26 14:29:04

远程协作的工作台整理远程协作的核心不是再加一个工具,而是让交接信息足够完整。异步任务要写明目标、输入位置、完成标准和需要决策的人。 工作台的最小配置 将日程、待办、代码和沟通入口收拢到少数固定位置;通知按紧急程度分层。工作台不需要模仿办公…

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

2026/9/28 5:05:21

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

2026/9/26 23:35:16

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…