python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python批量清洗Excel数据

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

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

您可能感兴趣的文章:
阅读全文