当前位置: 代码网 > it编程>前端脚本>Python > Python批量清洗Excel数据的操作指南(去重+补缺失值+可视化)

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

2025年12月12日 Python 我要评论
一、需求背景日常办公/入门数据分析时,常遇到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数据的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com