Python批量清洗Excel数据的操作指南(去重+补缺失值+可视化)

 更新时间:2025年12月12日 09:29:15   作者:杜斯{Data}  
日常办公或入门数据分析时,常遇到Excel数据杂乱(重复值、缺失值、格式混乱),手动处理耗时;本文用Python批量搞定清洗+可视化,10行代码解决重复工作,0基础也能会,需要的朋友可以参考下

一、需求背景

日常办公/入门数据分析时,常遇到Excel数据杂乱(重复值、缺失值、格式混乱),手动处理耗时;本文用Python批量搞定清洗+可视化,10行代码解决重复工作,0基础也能会。

二、数据准备

公开Excel数据集(含姓名、年龄、销售额、地区,带重复值/缺失值),文末附下载链接,或直接用自己的Excel文件替换路径即可。

三、核心步骤(代码+详细注释)

步骤1:安装库+导入工具

!pip install pandas matplotlib openpyxl -q
# 导入库
import pandas as pd
import matplotlib.pyplot as plt
​​​​​​​plt.rcParams['font.sans-serif'] = ['SimHei'] 

步骤2:读取Excel数据

# 读取Excel文件(替换为你的文件路径,Colab直接上传后用文件名)

df = pd.read_excel('sales_data.xlsx', engine='openpyxl')

# 查看数据前5行+基本信息(快速了解数据结构)

print("数据预览:")

print(df.head())

print("\n数据基本信息:")

print(df.info()) # 查看字段、数据类型、缺失值数量

步骤3:批量数据清洗(核心)

# 1. 删除重复行(按所有字段去重)

df = df.drop_duplicates()

# 2. 处理缺失值(年龄/销售额用平均值填充,地区用“未知”填充)

df['年龄'] = df['年龄'].fillna(df['年龄'].mean().round(0)) # 年龄取整

df['销售额'] = df['销售额'].fillna(df['销售额'].mean())

df['地区'] = df['地区'].fillna('未知')

# 3. 格式统一(年龄转为整数,销售额保留2位小数)

df['年龄'] = df['年龄'].astype(int)

df['销售额'] = df['销售额'].round(2)

# 清洗后数据预览

print("\n清洗后数据:")

print(df.head())

步骤4:简单可视化

4.1 各地区销售额分布(柱状图)

region_sales = df.groupby('地区')['销售额'].sum()

plt.figure(figsize=(10,4))

region_sales.plot(kind='bar', color='#66b3ff')

plt.title('各地区销售额分布')

plt.xlabel('地区')

plt.ylabel('总销售额(元)')

plt.xticks(rotation=45)

plt.grid(axis='y', alpha=0.3)

plt.show()

4.2 年龄与销售额关系(散点图)

plt.figure(figsize=(8,4))

plt.scatter(df['年龄'], df['销售额'], color='#ff6666', alpha=0.6)

plt.title('年龄与销售额关系')

plt.xlabel('年龄')

plt.ylabel('销售额(元)')

plt.grid(alpha=0.3)

plt.show()

四、完整可复制代码

# 安装依赖(首次运行)

!pip install pandas matplotlib openpyxl -q

# 导入库

import pandas as pd

import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']

# 1. 读取Excel数据

df = pd.read_excel('sales_data.xlsx', engine='openpyxl')

print("原始数据预览:")

print(df.head())

# 2. 数据清洗

df = df.drop_duplicates() # 去重

df['年龄'] = df['年龄'].fillna(df['年龄'].mean().round(0)).astype(int) # 补缺失值+转整数

df['销售额'] = df['销售额'].fillna(df['销售额'].mean()).round(2) # 补缺失值+保留2位小数

df['地区'] = df['地区'].fillna('未知') # 补缺失地区

print("\n清洗后数据:")

print(df.head())

# 3. 可视化1:各地区销售额

region_sales = df.groupby('地区')['销售额'].sum()

plt.figure(figsize=(10,4))

region_sales.plot(kind='bar', color='#66b3ff')

plt.title('各地区销售额分布')

plt.xlabel('地区')

plt.ylabel('总销售额(元)')

plt.xticks(rotation=45)

plt.grid(axis='y', alpha=0.3)

plt.show()

# 4. 可视化2:年龄与销售额关系

plt.figure(figsize=(8,4))

plt.scatter(df['年龄'], df['销售额'], color='#ff6666', alpha=0.6)

plt.title('年龄与销售额关系')

plt.xlabel('年龄')

plt.ylabel('销售额(元)')

plt.grid(alpha=0.3)

plt.show()

# 5. 保存清洗后的数据到新Excel(可选)

df.to_excel('cleaned_sales_data.xlsx', index=False, engine='openpyxl')

print("\n清洗后的数据已保存为 cleaned_sales_data.xlsx")

你平时用Excel处理数据时,最头疼“重复值”“缺失值”还是“格式转换”?评论区说你的痛点,我给你针对性的简化代码!

以上就是Python批量清洗Excel数据的操作指南(去重+补缺失值+可视化)的详细内容,更多关于Python批量清洗Excel数据的资料请关注脚本之家其它相关文章!

相关文章

  • 10 行Python 代码实现 AI 目标检测技术【推荐】

    10 行Python 代码实现 AI 目标检测技术【推荐】

    这篇文章主要介绍了10 行Python 代码,实现 AI 目标检测技术,看完了代码,我们在一起聊聊目标检测背后的技术背景,并解读这10行Python代码的由来和实现原理。感兴趣的朋友跟随小编一起看看吧
    2019-06-06
  • 教你如何在pycharm中安装opencv,tensorflow,keras

    教你如何在pycharm中安装opencv,tensorflow,keras

    今天通过本教程教大家如何在pycharm中安装opencv,tensorflow,keras,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-08-08
  • 在Python中操作列表之List.append()方法的使用

    在Python中操作列表之List.append()方法的使用

    这篇文章主要介绍了在Python中操作列表之List.append()方法的使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-05-05
  • 深入理解Python虚拟机中浮点数(float)的实现原理及源码

    深入理解Python虚拟机中浮点数(float)的实现原理及源码

    在本篇文章当中主要分析在 cpython 虚拟机当中 float 类型的实现原理以及与他相关的一些源代码,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-03-03
  • python 字典常用方法超详细梳理总结

    python 字典常用方法超详细梳理总结

    这篇文章主要介绍了Python数据类型字典dictionary,字典是另一种可变容器模型,且可存储任意类型对象。本篇文字将详细讲述字典的常用方法,需要的可以参考一下
    2022-03-03
  • python中sys.argv参数用法实例分析

    python中sys.argv参数用法实例分析

    这篇文章主要介绍了python中sys.argv参数用法,实例分析了python中sys.argv参数的功能、定义及使用技巧,需要的朋友可以参考下
    2015-05-05
  • Python中实现WebSocket的示例详解

    Python中实现WebSocket的示例详解

    WebSocket 是一种计算机通信协议,它为客户端和服务器之间的双向通信提供了一个全双工的通道,本篇文章将详解 Python 中如何实现 WebSocket,感兴趣的可以了解下
    2025-03-03
  • Python和Pandas版本的对应关系详细讲解

    Python和Pandas版本的对应关系详细讲解

    Pandas是Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据,这篇文章主要介绍了Python和Pandas版本对应关系的相关资料,需要的朋友可以参考下
    2025-08-08
  • Python调用C# Com dll组件实战教程

    Python调用C# Com dll组件实战教程

    下面小编就为大家带来一篇Python调用C# Com dll组件实战教程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Python爬取YY评级分数并保存数据实现过程解析

    Python爬取YY评级分数并保存数据实现过程解析

    这篇文章主要介绍了Python爬取YY评级分数并保存数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06

最新评论