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数据的资料请关注脚本之家其它相关文章!

相关文章

  • Python存储List数据到文件(text/csv/excel)几种常见方法

    Python存储List数据到文件(text/csv/excel)几种常见方法

    在数据分析中经常需要从csv格式的文件中存取数据以及将数据写书到csv文件中,下面这篇文章主要给大家介绍了关于Python存储List数据到文件(text/csv/excel)的几种常见方法,需要的朋友可以参考下
    2024-02-02
  • python 字符串前加f的含义

    python 字符串前加f的含义

    Python 中字符串前面的 f 是 f-string 的标识符,表示这是一个“格式化字符串字面值”(formatted string literal),从 Python 3.6 开始正式支持,这篇文章主要介绍了python 字符串前加f的含义,需要的朋友可以参考下
    2026-02-02
  • python实现逐个读取txt字符并修改

    python实现逐个读取txt字符并修改

    今天小编就为大家分享一篇python实现逐个读取txt字符并修改,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python中Class(类)的超详细说明

    python中Class(类)的超详细说明

    这篇文章主要介绍了python中Class(类)的相关资料,Class类定义了具有相同属性和方法的对象集合,对象是类的实例,类变量在整个实例化的对象中是公用的,而实例变量是每个对象独有的,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-11-11
  • python以环状形式组合排列图片并输出的方法

    python以环状形式组合排列图片并输出的方法

    这篇文章主要介绍了python以环状形式组合排列图片并输出的方法,涉及Python使用pil库操作图片的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • python调用java的jar包方法

    python调用java的jar包方法

    今天小编就为大家分享一篇python调用java的jar包方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • Python下singleton模式的实现方法

    Python下singleton模式的实现方法

    这篇文章主要介绍了Python下singleton模式的实现方法,有一定的借鉴价值,需要的朋友可以参考下
    2014-07-07
  • Macbook air m1安装python/anaconda全过程(图文)

    Macbook air m1安装python/anaconda全过程(图文)

    这篇文章主要介绍了Macbook air m1安装python/anaconda全过程(图文),文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python多线程编程(八):使用Event实现线程间通信

    Python多线程编程(八):使用Event实现线程间通信

    这篇文章主要介绍了Python多线程编程(八):使用Event实现线程间通信,,需要的朋友可以参考下
    2015-04-04
  • python的flask框架难学吗

    python的flask框架难学吗

    在本篇内容中小编给大家分享了关于python的flask框架是否难学的相关知识点,有兴趣的朋友们阅读下吧。
    2020-07-07

最新评论