76_Python数据分析pandas入门
Python数据分析基石pandas入门指南文章目录Python数据分析基石pandas入门指南前言一、安装与核心数据结构二、读取各种格式的数据三、数据筛选与索引四、排序与聚合五、数据修改与新增列六、实战销售数据分析✅ 亮点总结适用场景扩展方向前言在数据科学领域pandas是Python生态中最核心的数据处理库几乎没有之一。它提供了两种基础数据结构Series一维带标签数组和DataFrame二维表格以及丰富的数据读取、筛选、排序、聚合等功能。无论你是数据分析师、机器学习工程师还是后端开发者掌握pandas都将极大提升你的数据处理效率——因为它把用Excel手工操作2小时的工作压缩到了用Python写10行代码。本文从零开始带你入门pandas覆盖从数据加载到导出的完整链路。为什么pandas如此重要在实际数据分析工作中约80%的时间花在数据清洗和整理上而非模型训练。pandas正是解决这80%问题的利器。它的DataFrame结构类似于SQL的表或Excel的Sheet如果你有SQL经验学习pandas会发现自己像是在用Python写SQL——groupby对应GROUP BYfilter对应WHEREmerge对应JOIN。一、安装与核心数据结构pandas是Python第三方库使用前需要先安装。建议在虚拟环境中操作以避免依赖冲突。pipinstallpandas版本建议pandas 2.x是当前主流版本与1.x相比在性能上有显著提升特别是引入了Apache Arrow作为后端。如果你的项目对性能要求高建议使用pandas 2.x及以上。Series是一维带标签数组可以理解为有名字的列表。每个元素都有一个对应的索引标签这让数据的访问和操作比原生Python列表更加灵活importpandasaspd# 从列表创建spd.Series([10,20,30,40],index[a,b,c,d])print(s)# a 10# b 20# c 30# d 40# 通过索引访问print(s[b])# 20print(s[[a,c]])# 选取多个print(s[s20])# 条件筛选 - c:30, d:40Series vs 列表Python列表通过位置索引0, 1, 2…访问元素Series可以通过自定义标签如’a’, ‘b’, ‘c’访问。这在处理有含义的索引如日期、用户名时非常方便。Series还支持向量化运算——s * 2会直接对所有元素乘以2而普通列表需要写循环。常见误区Series的索引是标签不是位置——s[0]访问的是标签为0的元素而不是第0个位置的元素除非你没有自定义index。如果自定义了字符串索引s[0]会抛出KeyError。此时应该使用s.iloc[0]按位置访问。DataFrame是二维表格由多个Series按列组合而成。可以把它看作Excel中的一个Sheet或SQL中的一张表# 从字典创建data{姓名:[张三,李四,王五,赵六],年龄:[25,30,28,35],城市:[北京,上海,广州,深圳],薪资:[15000,20000,18000,25000],}dfpd.DataFrame(data)print(df)print(f\n形状:{df.shape})# (4, 4)print(f列名:{df.columns.tolist()})核心理解DataFrame的每一列本质上就是一个Series列名对应Series的name属性。所以df[年龄]返回的是一个Series对象你可以对这个Series使用Series的所有方法。面试加分点df.shape返回 (行数, 列数)df.columns返回列名索引df.index返回行索引。这三个属性是了解数据长相的第一步面试中能熟练使用说明你对pandas有实操经验。二、读取各种格式的数据pandas最大的优势之一就是数据接入能力——支持从CSV、Excel、JSON、SQL数据库、HTML网页等十几种数据源一键加载。这让你不必为每种数据格式单独学习一个库。# 从CSV读取df_csvpd.read_csv(data.csv,encodingutf-8)# 从Excel读取df_excelpd.read_excel(data.xlsx,sheet_nameSheet1)# 从JSON读取df_jsonpd.read_json(data.json)# 从数据库读取fromsqlalchemyimportcreate_engine enginecreate_engine(mysqlpymysql://user:passlocalhost/db)df_sqlpd.read_sql(SELECT * FROM users,conengine)# 常用参数dfpd.read_csv(data.csv,sep,,# 分隔符header0,# 第0行为列名names[col1,col2],# 自定义列名skiprows2,# 跳过前2行na_values[NA,missing],# 指定缺失值标识)read_csv避坑指南中文Windows系统产生的CSV文件通常使用gbk或gb2312编码直接读取会报UnicodeDecodeError。解决办法是—指定encodinggbk或encodinggb18030。另外如果CSV包含很大的数字如身份证号pandas默认可能将其读取为科学计数法导致精度丢失此时应指定dtype{身份证号: str}强制以字符串读取。性能建议读取超大CSV文件如几GB的日志文件时可以用chunksize10000参数分块读取每次返回一个包含10000行的DataFrame块配合循环处理可以避免内存溢出。三、数据筛选与索引数据筛选是pandas中用得最频繁的操作。理解loc、iloc和布尔索引三者的区别是入门到熟练的分水岭df[列名]选列返回Series或DataFramedf.loc[行标签, 列标签]基于标签的索引df.iloc[行位置, 列位置]基于整数位置的索引布尔索引用True/False数组过滤行dfpd.DataFrame({产品:[A,B,C,A,B],销量:[100,80,120,90,110],单价:[12.5,20.0,15.0,12.5,20.0],})# 按列选择print(df[产品])# 单列 - Seriesprint(df[[产品,销量]])# 多列 - DataFrame# loc按标签索引print(df.loc[0])# 第0行print(df.loc[1:3,[产品,销量]])# iloc按位置索引print(df.iloc[0,0])# 第0行第0列print(df.iloc[:3,:2])# 前3行前2列# 条件筛选high_salesdf[df[销量]100]product_adf[df[产品]A]multi_conddf[(df[销量]90)(df[单价]12)]print(multi_cond)loc vs iloc 的区别面试高频题loc使用标签索引包含终点——df.loc[1:3]会返回行标签为1、2、4的行如果存在标签4iloc使用位置索引不包含终点——df.iloc[1:3]只返回第1和第2行Python半开区间语义。这是初学者最容易混淆的地方。布尔索引的组合多个条件用与和|或每个条件必须单独用括号括起来。注意不能使用Python的and/or关键字因为它们在pandas中无法被重载为向量化操作。四、排序与聚合# 排序df_sorteddf.sort_values(销量,ascendingFalse)# 按销量降序df_multi_sortdf.sort_values([产品,销量],ascending[True,False])# 统计汇总print(df.describe())# 描述性统计print(df[销量].sum())# 总和print(df[销量].mean())# 均值print(df[销量].max())# 最大值print(df[销量].value_counts())# 频次统计# 分组聚合类似SQL的GROUP BYgroupeddf.groupby(产品).agg({销量:[sum,mean,max],单价:mean})print(grouped)groupby() 的工作机制groupby(产品)告诉pandas按产品分组此时它并不会执行任何计算只是创建了一个分组对象。只有在调用聚合函数如sum()、mean()时pandas才会真正遍历每个分组并计算结果。这种延迟计算的设计与SQL的执行计划类似。agg() 多函数聚合agg()允许对不同的列应用不同的聚合函数这是单次groupby().mean()做不到的。实际项目中一次groupby().agg()通常能替代多次单独查询显著提升代码效率和可读性。五、数据修改与新增列# 新增计算列df[总销售额]df[销量]*df[单价]# 应用函数创建新列df[等级]df[销量].apply(lambdax:高ifx100else低)# 修改现有列df[单价]df[单价]*1.1# 统一涨价10%# 删除列dfdf.drop(columns[等级])# 重命名列dfdf.rename(columns{总销售额:销售额})apply() vs 向量化运算df[总销售额] df[销量] * df[单价]是向量化运算pandas底层用C实现速度极快而apply(lambda x: ...)是逐行执行Python函数速度慢很多。能用向量化就不要用apply这是pandas性能优化的第一准则。drop() 的inplace陷阱df.drop(columns[等级])默认返回新DataFrame原DataFrame不变。如果希望原地修改需要加inplaceTrue。很多初学者写了df.drop(columns[等级])然后发现数据没变——这是因为忘记接收返回值。六、实战销售数据分析# 完整分析流程dfpd.read_csv(sales.csv)# 1. 概览数据print(df.head())print(df.info())print(df.describe())# 2. 按月份汇总销售额df[月份]pd.to_datetime(df[日期]).dt.month monthlydf.groupby(月份)[销售额].sum().reset_index()# 3. 找出Top5热销产品top5df.groupby(产品)[销售额].sum().sort_values(ascendingFalse).head(5)# 4. 导出结果withpd.ExcelWriter(销售分析报告.xlsx)aswriter:monthly.to_excel(writer,sheet_name月度汇总,indexFalse)top5.to_excel(writer,sheet_nameTop5产品)分析流程解读这是一个典型的数据分析mini pipeline——head()和info()先了解数据概况行数、列数、数据类型describe()获取数值列的统计量均值、标准差、最大最小值groupby()按月聚合sort_values().head(5)找出Top5to_excel()输出结果。这五步几乎适用于任何数据分析场景。日期处理技巧pd.to_datetime()将字符串转换为datetime类型这是最关键的预处理步骤——如果没有这一步日期只是普通字符串无法使用.dt.month等时间属性进行分组。注意处理转换失败的值可以用errorscoerce将无效日期转为NaT。pandas的核心能力可以概括为四步读数据read_xxx、查数据loc/iloc/条件筛选、算数据groupby/agg、写数据to_xxx。本文覆盖了DataFrame的创建、数据读取、条件筛选、排序聚合和新增列的完整流程。初学者建议先熟练掌握这五类基本操作再逐步深入时间序列处理、多表合并merge/join/concat等进阶话题。✅ 亮点总结DataFrame是pandas的核心数据结构支持从CSV、Excel、SQL等多种数据源一键加载loc/iloc/布尔索引覆盖了标签定位、位置定位和条件过滤三大筛选场景groupby()agg()组合是分组聚合的万能钥匙轻松实现多维度汇总统计apply()和列向量化运算让新增派生列变得简单直观避免手动循环pandas与Excel无缝衔接to_excel()配合ExcelWriter可实现多Sheet批量输出适用场景日常业务报表从数据库拉取销售数据用pandas做月度/季度汇总并输出Excel报表数据预处理流水线在机器学习项目前用pandas读取原始数据、清洗整理、切分训练测试集日志分析读取服务器日志文件用pandas筛选异常请求、统计接口耗时分布扩展方向深入时间序列分析学习pd.to_datetime()、resample()、滚动窗口等时间数据处理技巧多表关联操作掌握merge()、join()、concat()实现多数据源灵活整合推荐阅读下一篇《Python数据清洗实战技巧》学习如何处理缺失值、重复值和异常数据

相关新闻

绝了!原来论文还能这样拿高分?2026降AI率工具推荐合集

绝了!原来论文还能这样拿高分?2026降AI率工具推荐合集

还在为论文查重高、AI痕迹明显、格式乱七八糟焦虑?2026 年的论文降AIGC工具已经全面升级,从选题构思到内容润色、从降重处理到去除AI痕迹、再到专业格式排版,全流程智能辅助,帮你把写作压力降到最低,轻松拿下高分论文&…

2026/7/5 2:56:52 阅读更多 →
认识安企CMS - 系统概述

认识安企CMS - 系统概述

什么是安企CMS 安企内容管理系统(AnQiCMS),是一款使用 GoLang 开发的开源企业级内容管理系统。它的前身是 GoBlog 博客系统(2019 年启动),经过多次重构和功能扩展,于 2022 年 5 月 正式更名为 A…

2026/7/5 2:54:51 阅读更多 →
NSK超重载静音滚珠丝杠技术详解

NSK超重载静音滚珠丝杠技术详解

型号 HTF-SRC 12025-10.5 属于 sources 中 NSK 专为极大推力、超大负载驱动开发的最顶尖 HTF-SRC型(大负载驱动用)高速静音滚珠丝杠系列。 与您上一条查询的同系列 120 mm 轴径型号(HTF-SRC 12020-7.5)相比,该型号在维…

2026/7/5 2:54:51 阅读更多 →

最新新闻

Alexa增强与自主交通流耦合的语音交互新范式

Alexa增强与自主交通流耦合的语音交互新范式

1. 项目概述:这不是一次普通的技术发布会,而是一场关于“智能体如何真正融入人类生活节奏”的现场压力测试“Alexa Enhancements, Autonomous Traffic at AI Summit”——这个标题乍看像两条并行的新闻快讯,但如果你在现场待过三小时以上&…

2026/7/5 3:55:08 阅读更多 →
洞悉生态-社会耦合机制、多源数据融合进阶应用:基于当量因子法InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估种的应用

洞悉生态-社会耦合机制、多源数据融合进阶应用:基于当量因子法InVEST、SolVES模型等多技术融合在生态系统服务功能社会价值评估种的应用

在生态文明建设的浪潮中,你是否正为如何量化那些难以用货币衡量的“人心账”而头疼?传统的生态评估往往只算清了“经济账”,却忽略了公众对美学、休闲和精神寄托的感知。作为破解这一难题的核心利器,当量因子法、InVEST与SolVES的…

2026/7/5 3:55:08 阅读更多 →
面试时,你会问面试官哪些问题?

面试时,你会问面试官哪些问题?

明天又要去参加一次面试。每次面试的时候,面试官都会在最后给面试者一些时间,来问问题。这是个非常好的机会,能按照自己的思路,来了解职位、技术、企业文化、福利待遇、企业状况和前景等情况,以弥补前面面试过程中没有…

2026/7/5 3:53:08 阅读更多 →
零基础!IntelliJ IDEA + CC GUI + 智谱AI 配置全记录

零基础!IntelliJ IDEA + CC GUI + 智谱AI 配置全记录

一、背景与目标 目标:在 IntelliJ IDEA 中使用 Claude Code 风格的 AI 编程助手,且希望免费、稳定、合规。 最终方案:IntelliJ IDEA CC GUI 插件 cc-switch 工具 智谱AI GLM 免费模型。 二、完整过程与遇到的问题 阶段 1:想…

2026/7/5 3:51:07 阅读更多 →
2026内蒙古制造业工厂线上获客方案,GEO+短视频+关键词排名组合打法

2026内蒙古制造业工厂线上获客方案,GEO+短视频+关键词排名组合打法

前言:制造业获客方式升级,线上渠道成必选项2026年,内蒙古的制造业工厂面临着新的挑战和机遇。传统的线下展会、客户转介绍等获客方式,效果越来越有限;而线上渠道正在成为制造业获客的新主战场。很多制造业工厂的老板已…

2026/7/5 3:51:07 阅读更多 →
GBFR-Logs终极指南:从零开始掌握《碧蓝幻想:Relink》伤害统计

GBFR-Logs终极指南:从零开始掌握《碧蓝幻想:Relink》伤害统计

GBFR-Logs终极指南:从零开始掌握《碧蓝幻想:Relink》伤害统计 【免费下载链接】gbfr-logs GBFR Logs lets you track damage statistics with a nice overlay DPS meter for Granblue Fantasy: Relink. 项目地址: https://gitcode.com/gh_mirrors/gb/g…

2026/7/5 3:47:07 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻