AI数据分析学习路线:用Python和Pandas跑通第一份数据报告
学习AI数据分析,最直接的第一步不是研究算法,而是用Python把一份真实表格完整处理一遍:读进来、洗干净、算出指标、导出结果。
这条路线适合零基础、想转数据分析或需要处理业务报表的读者。
下面以一份销售明细CSV为例,在本地Windows或Linux环境跑通整个流程。
先搭一个能跑代码的环境
准备条件:安装Python 3.10或以上版本,以及Jupyter Notebook。
不需要GPU,普通办公电脑即可。
Windows用户从python.org下载安装包,安装时勾选 Add Python to PATH。
Linux用户可用系统包管理器安装:
# Ubuntu/Debian 示例
sudo apt update
sudo apt install python3 python3-pip python3-venv -y
创建并激活虚拟环境,避免污染系统Python:
python3 -m venv dataenv
source dataenv/bin/activate # Windows 用 dataenv\Scripts\activate
pip install pandas jupyter openpyxl
验证安装:
python -c "import pandas; print(pandas.__version__)"
能输出版本号即表示环境就绪。
接着启动Jupyter:
jupyter notebook
浏览器打开后新建一个Notebook,后续代码都在单元格中运行。
读取数据并完成清洗
准备一份销售明细CSV,至少包含订单日期、商品名称、数量、单价、地区几个字段。
用Pandas读取并查看基本情况:
import pandas as pd
df = pd.read_csv("sales.csv", encoding="utf-8")
print(df.shape)
print(df.head())
print(df.info())
如果出现 UnicodeDecodeError,说明文件编码不是UTF-8,可改用 encoding="gbk" 重试。
若列名出现乱码,同样先检查编码。
清洗分四步:
- 统一列名,去掉空格:
df.columns = df.columns.str.strip() - 删除完全重复的行:
df = df.drop_duplicates() - 处理缺失值:数值列用均值填充或删除,
df = df.dropna(subset=["数量", "单价"]) - 转换类型:
df["订单日期"] = pd.to_datetime(df["订单日期"], errors="coerce"),再用df["订单日期"].isna().sum()检查转换失败的行数。
清洗后重新查看 df.info(),确认数值列是数字类型、日期列是datetime类型,而不是object字符串。
计算核心指标并导出报告
先新增销售额列,再按地区和月份汇总:
df["销售额"] = df["数量"] * df["单价"]
df["月份"] = df["订单日期"].dt.to_period("M")
region_summary = df.groupby("地区", as_index=False)["销售额"].sum()
month_summary = df.groupby("月份", as_index=False)["销售额"].sum()
print(region_summary.sort_values("销售额", ascending=False))
print(month_summary)
把结果导出为Excel,方便交给业务方查看:
with pd.ExcelWriter("report.xlsx") as writer:
region_summary.to_excel(writer, sheet_name="地区汇总", index=False)
month_summary.to_excel(writer, sheet_name="月度趋势", index=False)
运行后当前目录会出现 report.xlsx,打开确认两个工作表都有数据且金额合计与原始销售额一致。
容易踩的坑和排查方式
- 金额算出来是0或异常大:检查数量和单价列是否被读成字符串,用
df.dtypes查看,必要时用pd.to_numeric(df["单价"], errors="coerce")转换。 - 日期分组报错:
dt.to_period只能用于datetime类型,先确认pd.to_datetime转换成功。 - Jupyter里改了代码但结果没变:确认单元格按顺序执行,或使用菜单
Kernel > Restart & Run All重新运行。 - 中文列名在导出后乱码:Excel本身对UTF-8支持正常,若使用CSV导出可加
encoding="utf-8-sig"。
怎样判断这一轮学习有效
完成以上步骤后,用三个标准自查:原始行数与清洗后行数差异能解释;
地区销售额合计等于总销售额;
导出的Excel能被Excel或WPS正常打开。
如果能独立重复一遍并修改分组字段(比如按商品名称汇总),说明已经掌握了AI数据分析中最常用的Pandas操作。
后续可以在此基础上加入简单可视化(Matplotlib)或把处理脚本写成可复用的函数,但不必一开始就追求复杂模型。
先把这条数据清洗到报告输出的链路跑稳,再扩展学习范围。