新闻详情

新闻详情

首页 / 资讯中心 / 详情

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

发布时间:2026/9/6 17:09:38来源:尧图网络
头歌-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秒。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

无源滤波器参数计算实操指南:整流谐波治理与补偿方案详解 2026/9/6 17:06:56

无源滤波器参数计算实操指南:整流谐波治理与补偿方案详解

简介:《无源滤波器参数计算》PDF 是一份聚焦无源滤波器设计要点的技术文档,主要面向电子工程师、硬件开发人员以及通信、音频、电源系统等相关领域的学生与初学者,帮助读者从零掌握电阻、电容、电感构成的无源滤波网络参数计算思路。文档系统…

阅读更多 →
SAS Studio编程入门:从环境配置到数据分析全流程实战 2026/9/6 17:06:56

SAS Studio编程入门:从环境配置到数据分析全流程实战

简介:《SAS Studio 3.3 编程入门》PDF 文档是 SAS 官方于 2015 年发布的编程入门手册,面向希望快速上手 SAS Studio 的数据分析与机器学习初学者,也可作为从业人员的案头参考。内容从软件基本概念、安装方法讲起,逐步覆盖数据导入…

阅读更多 →
SAS Studio入门:从数据清洗到PDF报告输出的完整实战指南 2026/9/6 17:06:56

SAS Studio入门:从数据清洗到PDF报告输出的完整实战指南

简介:SAS Studio 3.3 编程入门官方手册是一份面向数据分析初学者及从业者的技术资料,旨在帮助读者快速掌握SAS Studio 的基本操作、编程技巧与机器学习建模方法。该PDF由SAS Institute Inc. 于2015年正式出版,作为官方入门手册,内…

阅读更多 →
Winboat 自动化部署:Windows 客制服务在 Linux 虚拟机里跑起来的完整路径 2026/9/6 17:06:56

Winboat 自动化部署:Windows 客制服务在 Linux 虚拟机里跑起来的完整路径

Winboat 自动化部署:Windows 客制服务在 Linux 虚拟机里跑起来的完整路径 【免费下载链接】winboat Run Windows apps on 🐧 Linux with ✨ seamless integration 项目地址: https://gitcode.com/GitHub_Trending/wi/winboat 你是不是也被这种问题…

阅读更多 →
.NET 10 发布说明全解:跨平台 .NET 10 LTS、安全更新与 .NET 11 新变化指南 2026/9/6 17:06:56

.NET 10 发布说明全解:跨平台 .NET 10 LTS、安全更新与 .NET 11 新变化指南

.NET 10 发布说明全解:跨平台 .NET 10 LTS、安全更新与 .NET 11 新变化指南 【免费下载链接】core .NET news, announcements, release notes, and more! 项目地址: https://gitcode.com/GitHub_Trending/core82/core 这个仓库是 .NET 官方发布说明与公告的&…

阅读更多 →
258页PMP课件榨干攻略:三周备考3A的高效拆解法 2026/9/6 17:03:56

258页PMP课件榨干攻略:三周备考3A的高效拆解法

简介:以PMBOK知识体系为框架的258页PMP项目管理培训课件,适合正在备考PMP认证的项目管理人员及各行业项目参与者。整份课件系统梳理了项目管理基础、项目生命周期、项目干系人管理,并覆盖整体、范围、时间、成本、质量、人力、沟通、风险、采…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞