简介:这份资源面向希望系统掌握Python数据分析与可视化的学习者,覆盖从编程基础到高级可视化库的完整技能链路,适合高校课程学习、自学入门及项目实战参考。压缩包共162个文件,约31.27MB,以67个ipynb实验代码、11个pptx课件、34个tif图像、10个csv与6个xls数据集为主,另含doc/docx教学大纲、pdf文档及html交互页面,结构清晰便于按章节检索。内容从数据分析与可视化概述切入,依次讲解Python编程基础、pandas统计分析、数据载入与预处理,再深入Matplotlib、Seaborn绘图及pyecharts交互式图表,配套iris、红酒品质、学生成绩等真实数据集,可边学边练。目前已有18154人学习下载,读者能获得完整课件、可运行源码与实验数据,快速建立数据清洗、分析与可视化的项目能力。
1. 零基础入门 Python 数据分析与可视化:从打开表格到画出第一张图
你是不是也有过这种经历:手里有一份 Excel 表格,几千行数据,想看看哪个产品卖得最好、哪个月份销量突然掉了,结果鼠标滚来滚去,眼睛都看花了,最后只能凭感觉猜一个结论。更别提数据量再大一点,Excel 直接卡死,连保存都来不及。其实这类活儿,用 Python 做数据分析与可视化,几行代码就能搞定,而且以后每个月的数据都能自动跑一遍,不用重复劳动。
Python 数据分析与可视化,说白了就是两件事:第一,用 Python 把数据读进来、洗干净、算出你想要的结果;第二,把结果画成图,让人一眼看明白。它适合谁?适合每天跟表格打交道、想从数据里找答案、但又不想学复杂编程的人。你不需要数学特别好,也不需要背代码,只要会基本的加减乘除,跟着例子敲一遍,就能上手。我第一次学的时候也发怵,觉得编程离自己很远,后来发现它更像一个听话的计算器,你告诉它规则,它就帮你算到底。
2. 为什么值得学:先搞懂 Python 做数据分析到底强在哪
2.1 和 Excel 比,它到底解决了什么痛点
Excel 不是不好,而是有边界。行数一多就卡,公式一多就乱,多个表格关联查询更是噩梦。Python 做数据分析与可视化,核心优势是「可重复」和「可追溯」。你写好的代码,下个月数据更新了,直接重新跑一遍,结果自动出来,不用再手动拖公式。而且每一步计算都留在代码里,别人问你「这个数怎么来的」,你把代码一贴,清清楚楚。
另一个痛点是多表关联。比如订单表在 A 文件,客户信息在 B 文件,Excel 里你得用 VLOOKUP 来回对,一不小心就匹配错。Python 里用 pandas 合并两张表,一行代码的事,还能指定按哪一列合并、保留哪些行。我第一次用 pandas 合并两个表格的时候,那种「原来可以这么简单」的感觉,到现在还记得。
还有可视化。Excel 画图要选数据区域、调格式、改颜色,换一组数据又得重来。Python 里画图是代码控制的,你想画什么图、横轴纵轴放什么、颜色怎么分,全写在代码里,改一个参数就能换一种风格。更重要的是,它可以批量出图,比如给每个省份自动生成一张销售趋势图,Excel 里你得手动做三十遍,Python 里一个循环就搞定。
2.2 新手先学哪几个库就够了
Python 数据分析与可视化的库很多,但零基础入门,先学三个就够用:pandas、matplotlib、seaborn。pandas 负责读数据、洗数据、算数据;matplotlib 负责画基础图;seaborn 在 matplotlib 基础上做了封装,画统计图更省事。这三个库装好,80% 的日常分析任务都能应付。
安装很简单,打开命令行,输入下面这行命令,回车等它跑完就行:
pip install pandas matplotlib seaborn openpyxl这里openpyxl是用来读写 Excel 文件的,因为 pandas 读.xlsx文件时需要它帮忙。装完之后,在 Python 里用import pandas as pd这样的方式引入,后面就能用了。入门阶段不用纠结版本号,直接装最新版就行,遇到报错再按提示处理。
提示:如果你用的是 Anaconda,上面这些库已经自带了,不用再装。但如果你是从 Python 官网下载的纯净版,就需要手动装一下。
2.3 第一个例子:读一张表,算一个数,画一张图
光说概念没用,我们直接跑一个最小例子。假设你有一个 Excel 文件叫sales.xlsx,里面有两列:月份和销售额。你想知道哪个月卖得最好,并且画一张柱状图。代码如下:
# 引入 pandas 和 matplotlib import pandas as pd import matplotlib.pyplot as plt # 读取 Excel 文件 df = pd.read_excel('sales.xlsx') # 找出销售额最大的那一行 best_month = df.loc[df['销售额'].idxmax()] # 打印结果 print('卖得最好的月份是:', best_month['月份']) print('销售额是:', best_month['销售额']) # 画柱状图 plt.bar(df['月份'], df['销售额']) plt.title('各月销售额') plt.xlabel('月份') plt.ylabel('销售额') plt.show()这段代码做了三件事:pd.read_excel把表格读进来,变成一个 DataFrame;idxmax()找到销售额最大值所在的行号,loc再根据行号取出那一行;最后用plt.bar画柱状图,plt.show()把图显示出来。你不需要背这些函数,只要知道「读数据用 read_excel,找最大值用 idxmax,画图用 bar」就行。第一次跑通这个例子,你就已经完成了数据分析与可视化的最小闭环。
3. 第一步怎么迈:从安装到跑通第一个完整流程
3.1 环境准备:装 Python 和写代码的地方
零基础最容易卡在「装环境」这一步。我的建议是:直接去 Python 官网下载最新版,安装时勾选「Add Python to PATH」,这样后面在命令行里才能直接输入python命令。装完之后,再装一个写代码的工具。新手推荐 VS Code,免费、轻量、插件多;或者用 Jupyter Notebook,它可以把代码、运行结果、文字说明放在同一个页面里,特别适合边学边试。
如果你不想折腾安装,也可以用在线环境,比如 Google Colab 或者 Kaggle Notebook,打开浏览器就能写代码,数据文件也能上传。但长期来看,本地装一个更稳定,毕竟数据放在自己电脑上更放心。我第一次装 Python 的时候,因为没勾选 PATH,命令行里怎么都找不到 python,后来重新装了一遍才搞定。这个坑你留意一下就行。
3.2 读数据:把 Excel 和 CSV 变成 DataFrame
数据分析的第一步永远是「把数据读进来」。pandas 支持很多格式,最常用的是 Excel 和 CSV。读 Excel 用pd.read_excel('文件名.xlsx'),读 CSV 用pd.read_csv('文件名.csv')。读进来之后,它会变成一个 DataFrame,你可以理解成「Python 里的超级 Excel 表格」。
读进来之后,先别急着算,先看看数据长什么样。用df.head()看前五行,df.info()看每列的类型和有没有缺失值,df.describe()看数值列的平均值、最大值、最小值。这三个命令是新手必会的「体检三件套」。我每次拿到新数据,第一件事就是跑这三个命令,先摸清楚数据干不干净、有没有异常值。
import pandas as pd # 读 CSV 文件 df = pd.read_csv('data.csv') # 看前五行 print(df.head()) # 看每列信息 print(df.info()) # 看数值列统计 print(df.describe())head()默认显示前五行,括号里可以填数字,比如head(10)看前十行。info()会告诉你每列有多少非空值,如果某列非空值数量少于总行数,说明有缺失值,后面要处理。describe()只对数值列生效,会给出计数、均值、标准差、最小值、四分位数和最大值。
3.3 洗数据:处理缺失值和重复行
真实数据几乎没有干净的,缺失值、重复行、格式不一致是常态。缺失值可以用df.dropna()直接删掉,也可以用df.fillna(0)填成 0,或者用平均值填充。重复行用df.drop_duplicates()去掉。这些操作看起来简单,但决定了你后面算出来的结果可不可信。
# 删除缺失值 df_clean = df.dropna() # 或者用平均值填充数值列的缺失值 df['销售额'] = df['销售额'].fillna(df['销售额'].mean()) # 删除重复行 df_clean = df.drop_duplicates()dropna()默认只要某一行有任意一个缺失值就删掉整行,如果只想在特定列上判断,可以加subset=['列名']。fillna()里填什么取决于业务含义,销售额缺失填 0 可能不合适,填平均值更合理。drop_duplicates()默认比较所有列,如果只想按某一列去重,加subset=['列名']。
3.4 算数据:分组统计和排序
洗完之后就可以算了。最常见的需求是「按某个维度分组,算另一个维度的总和或平均值」。比如按月份分组算总销售额,用df.groupby('月份')['销售额'].sum()。想排序就用sort_values(),比如按销售额从高到低排:df.sort_values('销售额', ascending=False)。
# 按月份分组算总销售额 monthly_sales = df.groupby('月份')['销售额'].sum() # 按销售额从高到低排序 sorted_sales = df.sort_values('销售额', ascending=False) # 看排序后的前五行 print(sorted_sales.head())groupby是 pandas 里最强大的功能之一,它把数据按指定列分成若干组,然后对每组做同样的计算。sum()是求和,换成mean()就是求平均,count()就是计数。sort_values里ascending=False表示降序,不写或者写True就是升序。
3.5 画图:把结果变成一眼能懂的图
算完结果,最后一步是画图。matplotlib 和 seaborn 都能画,新手先用 matplotlib 打基础,再学 seaborn 提升颜值。最常用的图有柱状图、折线图、散点图、饼图。柱状图比大小,折线图看趋势,散点图看关系,饼图看占比。
import matplotlib.pyplot as plt # 画折线图看趋势 plt.plot(monthly_sales.index, monthly_sales.values, marker='o') plt.title('月度销售额趋势') plt.xlabel('月份') plt.ylabel('销售额') plt.xticks(rotation=45) plt.show()plt.plot画折线图,第一个参数是横轴数据,第二个是纵轴数据,marker='o'表示每个数据点画一个小圆圈。plt.xticks(rotation=45)把横轴标签旋转 45 度,防止月份文字重叠。plt.show()把图显示出来。如果你想保存图片,用plt.savefig('图名.png')代替plt.show()。
4. 避坑指南:新手最容易翻车的 5 个地方
4.1 文件路径写错,报 FileNotFoundError
现象:运行pd.read_excel('sales.xlsx')时报错,提示找不到文件。原因:Python 默认在当前工作目录找文件,如果你的代码文件和 Excel 不在同一个文件夹,它就找不到。解决:要么把 Excel 放到和代码同一个文件夹,要么写完整路径,比如pd.read_excel('C:/Users/你的用户名/Desktop/sales.xlsx')。注意 Windows 里路径用反斜杠\会出问题,改成正斜杠/或者双反斜杠\\。
4.2 中文列名读进来变乱码
现象:Excel 里明明是「销售额」,读进来变成「销售é¢」之类的乱码。原因:文件编码和 pandas 默认编码不一致。解决:读 CSV 时加encoding='utf-8'或encoding='gbk',两个都试一下,哪个不乱码用哪个。读 Excel 一般不会乱码,如果乱码,检查 Excel 文件本身是不是被其他软件改过格式。
4.3 画图时中文显示成方框
现象:图表标题和轴标签里的中文变成一个个小方框。原因:matplotlib 默认字体不支持中文。解决:在画图前加两行代码设置字体:
plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = FalseSimHei是黑体,Windows 系统自带。Mac 系统可以换成Arial Unicode MS。第二行是让负号正常显示,不然负号也会变方框。
4.4 把「求和」和「求平均」搞混
现象:算出来的结果大得离谱,或者小得离谱。原因:该用mean()的地方用了sum(),或者反过来。解决:先想清楚业务含义。销售额要求总和,用sum();客单价要求平均,用mean()。不确定的时候,先用describe()看一眼数据的均值和总和,心里有个数再算。
4.5 直接修改原始数据,没有备份
现象:洗数据的时候把原始 DataFrame 改了,后面想回头查原始值,发现已经没了。原因:dropna()、fillna()这些操作如果不加inplace=True,其实返回的是新对象,原始数据没变;但如果你写了inplace=True,原始数据就被改了。解决:养成习惯,原始数据读进来之后先复制一份:df_raw = df.copy(),后面所有清洗操作都在df上做,需要对照原始值时用df_raw。
5. 下一步学什么:从跑通例子到独立完成一个分析项目
跑通上面的例子之后,你已经迈过了最难的第一步。接下来建议按这个顺序往下走:先学 pandas 的筛选和条件查询,比如df[df['销售额'] > 1000]选出销售额大于一千的行;再学多表合并pd.merge(),把两张表按共同列拼在一起;然后学 seaborn 画更复杂的统计图,比如箱线图、热力图、分面图。这些学完,你就能独立完成一个「读数据 → 洗数据 → 算指标 → 出图表」的完整流程。
如果你不知道拿什么数据练手,可以找一份自己工作或生活中真实存在的表格,比如家庭开支记录、运动打卡记录、读书清单。真实数据才有真实的脏乱差,洗起来才有感觉。我第一次独立做分析,用的是自己记了半年的开销表,光是统一「餐饮」和「吃饭」这两个分类就折腾了半天,但做完之后,我清楚知道了钱花在哪,那种「数据真的能回答问题」的感觉,比看十篇教程都管用。
再往后,可以学一点 matplotlib 的自定义技巧,比如调整子图布局、设置颜色映射、加注释箭头。这些不是必须的,但能让你的图从「能看」变成「好看」。最后,如果你想让分析结果自动更新,可以学一点 Python 的循环和函数,把重复的操作封装起来,下次换一份数据,改一个文件名就能跑。
提示:不要一开始就追求学完所有功能,那样很容易放弃。每次只学一个点,学完立刻用真实数据试一遍,试通了再学下一个。
从那以后我每次拿到新数据,都强制自己先跑一遍head()、info()、describe(),确认数据没问题再动手算。这个习惯帮我省了很多返工的时间。希望帮到你。
本文还有配套的精品资源,点击获取