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