摘要:平时做课程设计、社团统计或者比赛数据整理时,经常会遇到 Excel 表格数据量大、重复操作多的问题。本文介绍如何使用 Python 的 Pandas 库读取 Excel 文件,完成数据查看、筛选、分组统计、空值处理、去重、新增列和导出结果等常见操作,适合刚接触 Pandas 的同学快速上手。
一、为什么用 Pandas 处理 Excel
如果表格只有几十行,手动处理还可以接受。但数据一多,筛选、统计、去重、合并都会变得很麻烦,而且容易出错。
Pandas 可以把 Excel 表格读进 Python,用代码完成这些操作。跑一次脚本就能得到结果,后面再遇到类似表格,直接改改参数就行。
二、安装依赖
pip install pandas openpyxl
pandas 是数据处理库,openpyxl 用来读写 .xlsx 文件。如果不装 openpyxl,读取 Excel 时可能会报错。
三、读取 Excel 文件
import pandas as pd df = pd.read_excel("data.xlsx") print(df.head()) print(df.shape)head() 可以查看前几行数据,shape 会返回行数和列数,方便确认表格是否读取成功。
四、查看表格基本信息
print(df.info()) print(df.describe()) print(df.columns)
info() 可以查看每列的数据类型和空值情况;
describe() 会给出数值列的统计信息,比如均值、最大值、最小值;
columns 可以查看表格有哪些列。
五、筛选数据
比如只保留成绩大于 80 的记录:
result = df[df["成绩"] > 80]
筛选某个班级:
result = df[df["班级"] == "一班"]
多个条件可以组合使用,注意每个条件都要用括号包起来,中间用&(与)、|(或)连接:
result = df[(df["班级"] == "一班") & (df["成绩"] > 80)]
六、分组统计
按班级统计平均成绩:
print(df.groupby("班级")["成绩"].mean())统计每个班级的人数:
print(df.groupby("班级").size())分组统计在做成绩分析、活动报名统计、销售数据汇总时都很常用。
七、处理空值
如果表格里有缺失数据,可以直接删除:
df = df.dropna()
也可以用固定值填充:
df["成绩"] = df["成绩"].fillna(0)
具体用哪种方式,要看数据本身的意义。
八、去重
如果表格里存在重复行,可以去重:
df = df.drop_duplicates()
九、新增一列
比如根据成绩生成等级列:
def get_level(score): if score >= 90: return "优秀" elif score >= 80: return "良好" elif score >= 60: return "及格" else: return "不及格" df["等级"] = df["成绩"].apply(get_level)
也可以写成更简洁的形式:
df["等级"] = df["成绩"].apply( lambda x: "优秀" if x >= 90 else "良好" if x >= 80 else "及格" if x >= 60 else "不及格" )
十、导出结果
处理完成后,可以把结果导出成新的 Excel 文件:
df.to_excel("result.xlsx", index=False)index=False 表示不把行索引写入表格,这样导出的文件更干净。
十一、完整示例
import pandas as pd df = pd.read_excel("data.xlsx") print("原始数据行数:", len(df)) df = df.dropna() df = df.drop_duplicates() high_score = df[df["成绩"] > 80] group_result = df.groupby("班级")["成绩"].mean() df["等级"] = df["成绩"].apply( lambda x: "优秀" if x >= 90 else "良好" if x >= 80 else "及格" if x >= 60 else "不及格" ) df.to_excel("result.xlsx", index=False) print("处理完成,已导出 result.xlsx")十二、常见问题
1. 读取 Excel 报错怎么办?
先确认文件路径是否正确,文件名是否包含 .xlsx 后缀,同时确认是否安装了 openpyxl。
2. 中文列名会不会有问题?
一般不会,只要代码里列名和表格里的列名完全一致即可。
3. 数据量很大怎么办?
如果表格特别大,可以先用 head() 查看部分数据,再逐步处理,避免一次性加载过多内容。
十三、可以扩展的方向
学会基础操作后,可以继续尝试:
合并多个 Excel 文件;
读取 CSV、TXT 数据;
按日期、类别生成统计报表;
把处理后的数据导出成图表;
写成自动化脚本,定期处理重复表格。
小结
Pandas 处理 Excel 的核心流程其实很简单:读取表格 → 查看数据 → 筛选和清洗 → 统计分析 → 导出结果。先把这几个步骤跑通,后面遇到课程设计、活动统计或比赛数据时,就能少很多重复操作。