1. 从零搭一个能用的Python数据分析环境,别再卡在第一步
先说个现象:很多人在网上找“python数据分析实战案例”,上来就复制代码跑,结果第一步就卡住了。不是缺库就是版本不对,要么就是装好了库却在Jupyter里导入失败。我见过太多人花了一整晚装环境,最后连pandas都import不进来,学了三天就放弃了。
其实呢,环境配置比你自己想象的简单得多,难的是你总是听别人说“怎么都行”,结果一步错步步错。
先说我个人最推荐的组合方案:Anaconda(或Miniconda)+ VS Code(或PyCharm)+ Jupyter Notebook插件。为啥是这个组合?因为Anaconda自带conda包管理器,创建虚拟环境特别方便,而数据分析项目之间依赖经常会冲突——比如A项目用pandas 1.5,B项目用pandas 2.0,如果硬装在一个环境里,分分钟给你脸色看。数据行业里有一个著名的“依赖地狱”说法,说的就是这个问题。
1.1 安装Python的两种方式,我建议你这么选
方式一:官网直接装Python,然后pip install。适合只用Python、不太折腾的人,但项目一多就容易乱。
方式二:装Anaconda,这是最常见的做法。因为它帮你预装了一大堆常用数据分析库(比如pandas、numpy、matplotlib、scikit-learn),省掉了新手最痛苦的“装库”环节。
安装完之后,请一定在命令行里跑一下:
bash复制python --version
conda --version
看到版本号就说明成功了。然后创建一个专门的项目环境:
bash复制conda create -n data_analysis python=3.10
conda activate data_analysis
提示:为什么不直接装在base环境里?我踩过这个坑——环境一旦装乱了,你想回滚都难。新建独立的干净环境,出了任何问题直接
conda remove -n data_analysis --all,重来就是,不会影响系统Python。
1.2 说几个最容易踩的坑
- 不要在Windows的cmd里直接输
python发现进的是微软商店。把Anaconda和Python的安装路径从系统环境变量里检查一下,确保你用的解释器是自己装的。 - VS Code里一定要按
Ctrl+Shift+P,输入Python: Select Interpreter,手动选到你刚刚创建的data_analysis环境,不然你装了库但VS Code用的还是另一个解释器,导入照样失败。 - Jupyter Notebook里跑
!pip install xxx装到的包,和你在终端里装的包其实是不同环境的,这是个高频翻车点。统一在终端里激活环境再pip安装,然后在Jupyter里使用。
要说安装过程中的额外注意点,尽量把Python装在纯英文路径下面。之前有个学员把Anaconda装到了D:\软件\Anaconda,结果后面搞第三方库编译的时候各种诡异报错,换成纯英文路径一下就好了。这个不是玄学,有些底层工具链对Unicode路径支持不好。
环境弄好了,接下来我们用真实场景走一遍完整案例。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 电商订单数据的“脏活累活”:先学会把数据读进来再动手分析
很多教程上来就给你看漂亮的可视化和分析结论,但现实世界的数据从来都不干净。我习惯用一份模拟的电商订单数据做教学,这份数据里包含订单号、下单时间、商品分类、销售额、用户ID、地区等字段。实战的第一步不是groupby,而是把数据原原本本读进来,搞清楚它长什么样。
2.1 读取数据之前,你总要回答这三个问题
第一个问题:数据是什么格式?业务上传的信息,最常见的是Excel和CSV。Excel有个坑:你可能需要指定sheet_name,否则默认读第一个Sheet,读错了你后面全是白干。CSV的坑更多——编码格式、分隔符、表头行数都要确认。中文数据最常用utf-8,但有的还是用gbk。这时候就体现出read_csv函数参数的灵活性了。
第二个问题:数据多大?几百MB的CSV,用pandas直接读是可以的,但内存占用很高。如果是几个GB的文件,就要考虑分块读取或换polars这些库。分析前心里要有点数,别等到内存溢出才发现。
第三个问题:读进来之后,我需要哪些列?先只读需要的列,能省下大量内存和时间。
举个实际例子:
python复制import pandas as pd
# 先探索一下文件,只读前面5行看看长什么样
df_preview = pd.read_csv("orders.csv", nrows=5, encoding="utf-8")
print(df_preview.head())
print(df_preview.columns.tolist())
# 确认没问题后正式读取,只挑关键字段
df = pd.read_csv(
"orders.csv",
usecols=["订单号", "下单时间", "商品分类", "销售额", "用户ID", "地区"],
parse_dates=["下单时间"],
encoding="utf-8",
)
parse_dates=["下单时间"]这一步很关键。如果你不告诉pandas哪一列是日期,它就会被当成普通字符串,后面你要做按月、按周、按小时的分析时就全乱了。读进来之后,我一般会先看三个东西:
- `
