摘要

本文基于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.

更多推荐