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

作者:

文章目录
  • 日常办公/入门数据分析时,常遇到Excel数据杂乱(重复值、缺失值、格式混乱),手动处理耗时;本文用Python批量搞定清洗+可视化,10行代码解决重复工作,0基础也能会。
  • 公开Excel数据集(含姓名、年龄、销售额、地区,带重复值/缺失值),文末附下载链接,或直接用自己的Excel文件替换路径即可。
  • # 安装依赖(首次运行) !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处理Excel文件的全面指南(从读取到数据清洗) Python+pandas实现Excel连续数据分组求平均值 Python高效实现Excel与TXT文本文件之间的数据转换 Python实现从多个数据源(CSV,Excel,SQL)自动整合数据
  • 目录
    • 一、需求背景
    • 二、数据准备
    • 三、核心步骤(代码+详细注释)
      • 步骤1:安装库+导入工具
      • 步骤2:读取Excel数据
      • 步骤3:批量数据清洗(核心)
      • 步骤4:简单可视化
    • 四、完整可复制代码

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

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

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

      # 读取Excel文件(替换为你的文件路径,Colab直接上传后用文件名)
      
      df = pd.read_excel('sales_data.xlsx', engine='openpyxl')
      
      # 查看数据前5行+基本信息(快速了解数据结构)
      
      print("数据预览:")
      
      print(df.head())
      
      print("n数据基本信息:")
      
      print(df.info()) # 查看字段、数据类型、缺失值数量

      # 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.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处理Excel文件的全面指南(从读取到数据清洗)
      • Python+pandas实现Excel连续数据分组求平均值
      • Python高效实现Excel与TXT文本文件之间的数据转换
      • Python实现从多个数据源(CSV,Excel,SQL)自动整合数据

      站内搜索