头歌-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秒。

相关新闻

最新新闻

半路出家程序员感受:非科班出身如何转行程序员?

半路出家程序员感受:非科班出身如何转行程序员?

非科班出身是指那些大学专业为非计算机相关专业的人群,多数人对于计算机基础了解比较少,甚至零基础。这部分人群中有相当多一部分处于对于编程的兴趣和外界了解的印象想转行成为一名程序员。 非科班出身与计算机科班出身相比有着天然的劣势,在…

2026/7/16 0:20:11
Agent决策的可解释性设计:推理链路追踪与置信度可视化

Agent决策的可解释性设计:推理链路追踪与置信度可视化

Agent决策的可解释性设计:推理链路追踪与置信度可视化 一、引言 Agent的黑箱问题是企业落地的最大障碍之一。当Agent给出一个结论或执行一个动作时,用户和管理者都会问同一个问题:为什么? 如果Agent给出的答案无法被解释&#xff…

2026/7/16 0:20:11
工作流平台的审计与合规:操作日志的采集、存储与追溯体系

工作流平台的审计与合规:操作日志的采集、存储与追溯体系

工作流平台的审计与合规:操作日志的采集、存储与追溯体系 一、引言 工作流平台承载着企业的核心业务流程:审批、自动化任务、数据流转。每条操作记录都可能成为审计证据。然而很多团队对操作日志的态度是"先记下来再说",等到合规审…

2026/7/16 0:20:11
如何通过GBFR-Logs成为碧蓝幻想Relink数据分析专家:免费DPS统计工具完全指南

如何通过GBFR-Logs成为碧蓝幻想Relink数据分析专家:免费DPS统计工具完全指南

如何通过GBFR-Logs成为碧蓝幻想Relink数据分析专家:免费DPS统计工具完全指南 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/g…

2026/7/16 0:20:11
鸣潮工具箱:你的游戏体验为何总比别人差一步?

鸣潮工具箱:你的游戏体验为何总比别人差一步?

鸣潮工具箱:你的游戏体验为何总比别人差一步? 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools 想象一下这样的场景:你的电脑配置明明不错,但《鸣潮》的画面却…

2026/7/16 0:20:11
工业现场疑难软故障实录:01 为什么系统以前能跑,现在突然不行了?

工业现场疑难软故障实录:01 为什么系统以前能跑,现在突然不行了?

第一篇:为什么系统以前能跑,现在突然不行了? ——系统崩溃的那一天,往往不是问题开始的那一天 那条生产线已经平稳运行了整整八年。 维修部接到电话时,所有人都觉得不可能。因为这是一条全厂公认的最稳定产线。八年来,几乎没有重大停机,没有频繁报警,维修记录也干干…

2026/7/16 0:15:11

月新闻