AI自动生成Python数据清洗代码

3 阅读2分钟

案例:AI自动生成Python数据清洗代码

需求描述

用户需要清洗一个包含缺失值和异常值的CSV数据集,但缺乏相关经验。通过自然语言描述需求,AI生成可运行的Python代码。

实现步骤

  1. 用户输入自然语言描述

    请帮我生成Python代码:
    - 读取data.csv文件
    - 删除所有空值超过50%的列
    - 用中位数填充剩余数字列的缺失值
    - 过滤掉"age"列中大于100或小于0的异常值
    - 结果保存为cleaned_data.csv
    
  2. AI处理过程

    • 解析自然语言需求
    • 识别关键操作(文件读取、列过滤、缺失值处理、异常值过滤)
    • 匹配Python库(pandas)
    • 生成可执行代码
  3. 生成的代码

import pandas as pd

def clean_data(input_path, output_path):
    # 读取数据
    df = pd.read_csv(input_path)
    
    # 删除空值超过50%的列
    threshold = len(df) * 0.5
    df = df.dropna(thresh=threshold, axis=1)
    
    # 用中位数填充数值列
    numeric_cols = df.select_dtypes(include=['number']).columns
    for col in numeric_cols:
        median = df[col].median()
        df[col] = df[col].fillna(median)
    
    # 过滤age异常值
    if 'age' in df.columns:
        df = df[(df['age'] >= 0) & (df['age'] <= 100)]
    
    # 保存结果
    df.to_csv(output_path, index=False)
    print(f"数据已清洗并保存到 {output_path}")

# 使用示例
clean_data("data.csv", "cleaned_data.csv")
  1. 附加功能
    • 自动添加异常处理
    • 生成代码注释
    • 建议安装依赖的命令:
      pip install pandas
      

关键技术点

  1. 自然语言处理(NLP)

    • 使用BERT等模型解析用户需求
    • 提取关键操作动词(删除/填充/过滤)
  2. 代码知识图谱

    • pandas常用操作映射
    • 数据清洗最佳实践库
  3. 上下文感知

    • 自动识别"age"列为数值型
    • 推荐中位数填充而非均值(对异常值更鲁棒)
  4. 可扩展性设计

    # 用户可手动调整的阈值参数
    NULL_THRESHOLD = 0.5  
    AGE_RANGE = (0, 100)
    

进阶应用场景

  1. 代码优化建议

    # AI建议:使用dropna的subset参数提升性能
    df.dropna(subset=['critical_column'], inplace=True)
    
  2. 错误预防

    # 自动添加类型检查
    if not isinstance(df, pd.DataFrame):
        raise ValueError("输入必须是DataFrame")
    
  3. 交互式编程

    AI: 需要处理日期列吗?检测到有'order_date'列
    User: 是的,请转换为datetime格式
    AI: 已添加 df['order_date'] = pd.to_datetime(df['order_date'])
    

典型工具推荐

  1. OpenAI Codex
  2. GitHub Copilot
  3. Amazon CodeWhisperer
  4. 文心ERNIE-Coder(中文场景)

这个案例展示了如何通过自然语言交互实现:需求理解→代码生成→优化建议→异常处理的完整智能编码流程。实际开发中可结合业务需求扩展验证机制和自定义规则库。