在数字化生活中,我们每天都会产生各类结构化数据——手机账单里的月度消费记录、Excel表格中的家庭收支明细、电商后台的订单数据、甚至是孩子的学习成绩统计表。面对这些数据,用手动方式在Excel里筛选、求和、分类不仅效率低下,还容易因重复操作出现错误;而用原生Python代码逐行处理文本或表格数据,又需要编写大量冗余代码,门槛高且耗时。这时候,pandas库就成了破解这类问题的“利器”。pandas是基于NumPy构建的Python数据分析库,专门用于处理结构化数据(如表格、CSV文件、Excel文件),它将复杂的数据操作封装成简洁的API,让普通程序员甚至非专业开发者都能以极少的代码完成数据读取、清洗、筛选、统计和分析,是日常数据处理场景中最不可替代的Python库之一。
二、安装pandas库
要使用pandas,首先需要完成安装。由于pandas依赖NumPy,建议通过pip包管理器一键安装,在命令行中执行以下命令即可:
pip install pandas
如果你的Python环境存在版本兼容问题,可指定长期支持版安装(兼容性更好):
pip install pandas==2.1.4
安装完成后,在Python脚本中导入pandas(行业惯例简写为pd),即可开始使用:
import pandas as pd
三、pandas的基本用法(4个核心步骤)
1. 数据读取:将本地数据导入pandas
pandas支持读取CSV、Excel、JSON等多种格式的文件,这是处理数据的第一步。以日常最常用的CSV格式(比如“2026年1月收支.csv”)为例:
# 读取CSV文件,指定编码为utf-8避免中文乱码
df = pd.read_csv("2026年1月收支.csv", encoding="utf-8")
# 若读取Excel文件,需先安装依赖:pip install openpyxl
# df = pd.read_excel("2026年1月收支.xlsx", sheet_name="收支明细")
2. 数据查看与清洗:处理“脏数据”
读取数据后,首先要检查数据完整性,处理缺失值、重复值等“脏数据”:
# 查看前5行数据,快速了解数据结构
print(df.head())
# 查看数据的基本信息(列名、数据类型、非空值数量)
print(df.info())
# 处理缺失值:删除全为空的行,将金额列的缺失值填充为0
df = df.dropna(how="all") # 删除全空行
df["金额"] = df["金额"].fillna(0) # 金额列缺失值填0
# 处理重复值:删除完全重复的行
df = df.drop_duplicates()
3. 数据筛选:精准提取需要的信息
比如筛选“2026年1月消费金额>100元且类别为‘餐饮’”的记录:
# 筛选条件:类别为餐饮,金额>100(注意用&表示且,条件需用括号包裹)
filter_df = df[(df["类别"] == "餐饮") & (df["金额"] > 100)]
print("1月餐饮消费超100元的记录:")
print(filter_df)
4. 基础统计分析:快速计算核心指标
pandas内置了丰富的统计函数,可一键计算求和、平均值、最大值等:
# 计算1月总收支
total_amount = df["金额"].sum()
# 计算餐饮类别的平均消费
avg_food = df[df["类别"] == "餐饮"]["金额"].mean()
# 统计各类别的消费次数
count_by_type = df["类别"].value_counts()
print(f"1月总收支:{total_amount:.2f}元")
print(f"1月餐饮平均消费:{avg_food:.2f}元")
print("各类别消费次数:")
print(count_by_type)
四、pandas的高级用法
对于更复杂的场景,pandas的高级功能能大幅提升效率。比如用数据透视表快速按“日期+类别”汇总消费,或合并多份数据:
# 1. 数据透视表:按周和类别统计消费总额
# 先将日期列转为时间格式(方便按时间维度分析)
df["日期"] = pd.to_datetime(df["日期"])
# 新增“周数”列,按自然周划分
df["周数"] = df["日期"].dt.isocalendar().week
# 构建数据透视表,按周数行、类别列汇总金额
pivot_df = pd.pivot_table(
df,
values="金额",
index="周数",
columns="类别",
aggfunc="sum",
fill_value=0 # 空值填充为0
)
print("按周+类别汇总的消费表:")
print(pivot_df)
# 2. 多表合并:合并1月和2月的收支数据
df2 = pd.read_csv("2026年2月收支.csv", encoding="utf-8")
# 纵向合并两个DataFrame,ignore_index重置索引
total_df = pd.concat([df, df2], ignore_index=True)
print(f"1-2月总记录数:{len(total_df)}条")
五、实际应用场景
1. 个人收支管理(最贴近日常生活)
你可以将每月的微信/支付宝账单导出为CSV,用pandas统计各类消费占比(如餐饮、娱乐、交通),识别超支类别(比如“娱乐消费占比超30%”),甚至结合matplotlib生成可视化图表,帮助优化消费结构。
2. 电商小卖家订单分析
小卖家可导出平台订单CSV,用pandas筛选“近7天未发货订单”“高客单价订单”“退货订单”,快速定位运营问题,比手动翻Excel快10倍以上。
3. 教师成绩分析
教师可读取学生成绩表,用pandas计算各班平均分、各分数段人数、单科成绩排名,甚至分析“作业完成度与考试成绩的相关性”,减少重复统计工作。
pandas的核心价值在于将复杂的数据处理逻辑封装成极简的API,让我们从繁琐的手动操作和冗余代码中解放出来,聚焦于数据本身的分析和决策。无论是个人日常的数据整理,还是小型商业场景的数据分析,pandas都能以“少代码、高效率”的特点解决核心问题——它不是只有专业数据分析师才能用的工具,而是每个Python学习者都能掌握的日常数据处理“助手”。
不知道你在日常工作或生活中,是否遇到过需要反复处理表格数据的场景?比如每月整理家庭账单、统计工作报表,或是分析自己的学习/运动数据?不妨试试用pandas来解决这些问题,感受一下代码化数据处理的高效。如果在使用过程中遇到任何问题,比如数据读取乱码、筛选条件写错,都可以留言交流,我们一起拆解问题、优化代码。
总结
- pandas是处理结构化数据的核心Python库,能高效解决日常Excel/CSV数据处理中手动操作低效、易出错的问题;
- 其核心用法包括数据读取、清洗、筛选、统计,高级用法(数据透视表、多表合并)可应对复杂场景;
- 贴近生活的应用场景涵盖个人收支管理、小卖家订单分析、教师成绩统计等,实用性极强。