【Python实战】用Pandas轻松实现Excel数据清洗与可视化

一、前言:告别手动处理Excel的烦恼

在日常工作中,Excel数据处理是许多开发者、数据分析师的"必修课"。但面对重复性的数据清洗、格式转换和报表生成,手动操作不仅效率低下,还容易出错。本文将通过Python的Pandas库,教你3行代码批量处理Excel文件,并利用Matplotlib自动生成可视化图表。


二、环境准备

1. 安装必备库

python

复制代码
pip install pandas openpyxl matplotlib
  • pandas:数据处理核心库

  • openpyxl:支持Excel 2010+文件格式

  • matplotlib:数据可视化工具

2. 示例数据(sales_data.xlsx)

订单ID 日期 销售额 地区
1001 2023-01-05 1500 北京
1002 2023-01-12 NaN 上海
... ... ... ...

三、实战步骤

1. 快速读取与合并Excel文件

复制代码
import pandas as pd

# 读取单个文件
df = pd.read_excel("sales_data.xlsx", sheet_name="Sheet1")

# 批量合并文件夹下所有Excel
import os
all_files = [f for f in os.listdir("./data") if f.endswith(".xlsx")]
combined_df = pd.concat([pd.read_excel(f) for f in all_files])

2. 数据清洗四步法

复制代码
# 处理缺失值
df['销售额'].fillna(df['销售额'].mean(), inplace=True)

# 删除重复行
df.drop_duplicates(subset=['订单ID'], keep='first', inplace=True)

# 类型转换
df['日期'] = pd.to_datetime(df['日期'])

# 异常值过滤
df = df[(df['销售额'] > 0) & (df['销售额'] < 100000)]

3. 高级操作:数据透视与分组统计

复制代码
# 按地区统计月销售额
pivot_table = df.pivot_table(
    index=df['日期'].dt.month,
    columns='地区',
    values='销售额',
    aggfunc='sum'
)

# 输出结果
print(pivot_table.to_markdown())  # 转为Markdown格式方便博客插入

4. 自动化可视化(Matplotlib集成)

复制代码
import matplotlib.pyplot as plt

# 绘制各地区销售额趋势
df.groupby(['地区', df['日期'].dt.month])['销售额'].sum().unstack().plot(
    kind='line',
    marker='o',
    figsize=(10,6)
)

plt.title('2023年度各地区月度销售趋势')
plt.xlabel('月份')
plt.ylabel('销售额(万元)')
plt.grid(True)
plt.savefig('sales_trend.png')  # 保存图表

四、效率对比

操作项 传统手动处理 Python自动化
10个文件合并 30分钟 5秒
数据清洗 易出错 精准处理
生成月报图表 1小时 10秒

五、避坑指南

  1. 编码问题 :遇到中文乱码时添加engine='openpyxl'

  2. 内存优化 :大数据集使用chunksize参数分块读取

  3. 样式保留 :需要保留原格式时推荐xlwings


六、完整代码获取

👉 关注博主,私信回复【Excel自动化】获取本文完整代码+测试数据集!


七、结语

通过本文,我们见证了Python在数据处理中的强大威力。掌握Pandas不仅能提升工作效率,更能将重复劳动转化为创造性工作。你的下一个Excel插件,何必是VBA?

拓展学习


标签Python 数据分析 办公自动化 Pandas Excel技巧

相关推荐
顾安r4 小时前
11.5 脚本 本地网站收藏(解封归来)
linux·服务器·c语言·python·bash
Blossom.1184 小时前
把AI“贴”进路灯柱:1KB决策树让老旧路灯自己报「灯头松动」
java·人工智能·python·深度学习·算法·决策树·机器学习
❀͜͡傀儡师5 小时前
快速定位并解决Java应用CPU占用过高问题
java·开发语言·python
linuxxx1105 小时前
django中request.GET.urlencode的使用
后端·python·django
冬天vs不冷5 小时前
Java基础(十五):注解(Annotation)详解
android·java·python
汤姆yu5 小时前
基于大数据的全国降水可视化分析预测系统
大数据·开发语言·python
星空的资源小屋7 小时前
Text Grab,一款OCR 截图文字识别工具
python·django·ocr·scikit-learn
寒秋丶7 小时前
Milvus:Json字段详解(十)
数据库·人工智能·python·ai·milvus·向量数据库·rag
自由随风飘11 小时前
python 题目练习1~5
开发语言·python
fl17683113 小时前
基于python的天气预报系统设计和可视化数据分析源码+报告
开发语言·python·数据分析