【Python数据分析】Pandas完整入门实战教程:数据清洗与可视化全流程
摘要
本文基于Python主流数据分析库Pandas,从零讲解数据表读取、缺失值处理、筛选分组、数据合并、结果可视化完整实操流程,配套可直接运行代码,解决新手数据清洗踩坑、分组统计逻辑混乱等常见问题,适合零基础数据分析入门学习。
关键词:python;pandas;数据分析;数据清洗;numpy
一、前言
在大数据、机器学习、业务统计开发场景中,数据预处理占据70%以上工作量,Pandas是Python生态最核心的表格处理工具。
网上多数教程只零散讲解单一函数,缺少连贯实战案例,新手容易出现索引报错、缺失值处理不当、分组求和逻辑出错等问题。
本文结合真实业务数据集模拟场景,完整覆盖从文件读取到可视化输出全链路操作,所有代码经过本地实测,复制即可运行,同时整理高频报错解决方案。
二、环境配置与前置条件
2.1 工具版本
- Python:3.9 / 3.10
- pandas:2.1.4
- numpy:1.26.2
- matplotlib:3.8.2(可视化依赖)
2.2 安装依赖命令
打开终端执行pip安装:
bash
pip install pandas numpy matplotlib
三、核心基础概念
1. Series:一维数组结构,单列数据,自带索引
2. DataFrame:二维表格结构,多行多列,等同于Excel表格,是Pandas最常用对象
3. 索引index:每行唯一标识,支持自定义、重置、多层索引
4. 缺失值:空值NaN,数据分析首要处理对象
四、完整实操流程
4.1 读取本地数据文件
支持csv、excel、txt格式文件读取,示例读取csv销售数据:
python
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 读取csv文件
df = pd.read_csv("sales_data.csv", encoding="utf-8")
# 读取excel文件
# df = pd.read_excel("sales_data.xlsx", sheet_name="Sheet1")
# 查看数据前5行
print(df.head())
# 查看数据表基础信息(行列数、字段类型、缺失值数量)
print(df.info())
# 数值字段统计描述(均值、最大最小值、标准差)
print(df.describe())
4.2 数据筛选与条件查询
单条件、多条件筛选数据,精准提取目标业务数据:
python
# 单列查看
print(df["销售额"])
# 单条件筛选:销售额大于1000的数据
res1 = df[df["销售额"] > 1000]
# 多条件筛选:城市为西安 且 销量>50
res2 = df[(df["城市"] == "西安") & (df["销量"] > 50)]
# 按指定列输出结果
print(res2[["日期","城市","销售额","销量"]])
4.3 缺失值清洗(高频核心操作)
业务数据普遍存在空值,提供两种主流处理方案:删除、填充
python
# 统计每列缺失值数量
print(df.isnull().sum())
# 方案1:直接删除存在缺失值的行
df_drop = df.dropna(axis=0)
# 方案2:填充缺失值
# 数值列填充均值
df["销售额"] = df["销售额"].fillna(df["销售额"].mean())
# 文本列填充固定文字
df["城市"] = df["城市"].fillna("未知城市")
4.4 分组聚合统计
按维度分组求和、求平均,实现业务报表统计:
python
# 按城市分组,统计每个城市总销售额、平均销量
group_result = df.groupby("城市").agg(
总销售额=("销售额", "sum"),
平均销量=("销量", "mean")
).reset_index()
print(group_result)
4.5 数据可视化输出
基于分组结果绘制柱状图,直观展示各城市销售情况:
python
# 设置中文显示,避免乱码
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False
# 绘制柱状图
plt.bar(group_result["城市"], group_result["总销售额"], color="#409EFF")
plt.title("各城市销售总额统计")
plt.xlabel("城市")
plt.ylabel("总销售额")
plt.xticks(rotation=45)
plt.tight_layout()
plt.show()
4.6 处理完成后导出结果
清洗、统计完成后导出为Excel/csv文件,用于汇报使用:
python
# 导出csv
group_result.to_csv("城市销售统计.csv", index=False, encoding="utf-8-sig")
# 导出Excel
group_result.to_excel("城市销售统计.xlsx", sheet_name="销售报表", index=False)
五、Pandas高频报错踩坑总结
1. 报错:KeyError: '列名'
原因:字段名称存在空格、中英文符号不匹配;
解决:执行print(df.columns)查看真实列名,修正名称。
2. 报错:ValueError: The truth value of a Series is ambiguous
原因:多条件筛选使用and/or,Pandas表格条件必须用&/|;
解决:将and替换为&,or替换为|,每个条件加括号。
3. 导出Excel乱码
原因:编码不兼容;
解决:导出csv添加encoding="utf-8-sig"参数。
4. 图表中文方块乱码
原因:未配置中文字体;
解决:代码开头添加字体设置两行代码。
六、总结
1. Pandas核心流程:读取文件→查看数据概览→缺失值清洗→条件筛选→分组统计→可视化导出;
2. 缺失值优先根据业务选择填充/删除,不要直接丢弃有效数据;
3. groupby分组聚合是业务报表统计核心函数,搭配agg自定义统计字段;
4. 数据分析完成后导出表格,可直接用于业务汇报、机器学习特征输入。
后续学习方向:多表merge合并、时间序列处理、透视表pivot_table、高阶数据类型转换。
参考文献
[1] Pandas官方文档. Pandas Data Analysis Tool[EB/OL]. 2026. [2026-06-19].
[2] Python数据分析实战指南[EB/OL]. CSDN技术社区, 2026.
更多推荐
所有评论(0)