news 2026/8/5 17:22:06

AI数据预处理“神器”:Pandas实战技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI数据预处理“神器”:Pandas实战技巧

一、核心结论

Pandas是AI数据预处理的核心工具,通过“数据清洗→特征工程→格式转换”流程,配合高效函数(如fillna/groupby/pivot_table),可将数据处理效率提升60%,为模型训练奠定高质量数据基础。

二、数据清洗:从“脏数据”到“可用数据”

1. 缺失值处理:fillna与dropna

  • 场景:处理空值(NaN),避免模型训练报错。
  • 实战技巧
    • 数值型缺失:用均值/中位数填充(避免极端值影响):
python df['age'].fillna(df['age'].median(), inplace=True) # 中位数填充年龄
    • 类别型缺失:用众数或“Unknown”填充:
python df['city'].fillna(df['city'].mode()[0], inplace=True) # 众数填充城市
    • 删除无效行:缺失值比例过高时(如>50%):
python df.dropna(subset=['critical_feature'], inplace=True) # 删除关键特征缺失的行

2. 重复值处理:drop_duplicates

  • 场景:去除重复数据,避免模型学习冗余信息。
  • 实战技巧
python df.drop_duplicates(subset=['id'], keep='first', inplace=True) # subset:指定去重依据列(如用户ID);keep='first'保留第一条

3. 异常值处理:clip与IQR法则

  • 场景:识别并修正极端值(如年龄=200)。
  • 实战技巧
    • 截断法:限制数值范围(如年龄1-120岁):
python df['age'] = df['age'].clip(lower=1, upper=120) # 超出范围的强制设为边界值
    • IQR法则:删除3倍IQR外的异常值:
python Q1 = df['price'].quantile(0.25) Q3 = df['price'].quantile(0.75) IQR = Q3 - Q1 df = df[(df['price'] >= Q1 - 3*IQR) & (df['price'] <= Q3 + 3*IQR)]

三、特征工程:从“原始数据”到“模型特征”

1. 特征转换:astype与replace

  • 场景:数据类型转换(如字符串→数值)、类别映射。
  • 实战技巧
    • 类型转换:将“字符串日期”转为datetime:
python df['timestamp'] = pd.to_datetime(df['timestamp'], format='%Y-%m-%d')
    • 类别映射:将“男/女”转为0/1:
python df['gender'] = df['gender'].replace({'男': 0, '女': 1})

2. 特征提取:str.extract与dt属性

  • 场景:从文本/日期中提取关键信息。
  • 实战技巧:智优达
    • 从文本提取数字(如从“价格:99元”提取99):
python df['price'] = df['text'].str.extract('(\d+)').astype(float) # 正则提取数字
    • 从日期提取特征(如星期几、月份):
python df['day_of_week'] = df['timestamp'].dt.dayofweek # 0=周一,6=周日

3. 特征聚合:groupby与pivot_table

  • 场景:按类别统计(如“各城市平均收入”)。
  • 实战技巧
    • 基础聚合:计算各分组均值/总和:
python city_avg_income = df.groupby('city')['income'].mean().reset_index()
    • 数据透视表:多维度聚合(如“城市×性别”的收入均值):
python pivot = df.pivot_table( index='city', columns='gender', values='income', aggfunc='mean' )

四、数据格式转换:为模型训练准备输入

1. 独热编码:get_dummies

  • 场景:将类别特征转为模型可接受的数值(如“城市”→多个0/1列)。
  • 实战技巧
python df = pd.get_dummies(df, columns=['city'], drop_first=True) # columns:指定需编码的列测,drop_first=True去除冗余特征。

2. 标准化/归一化

  • 场景:统一数据尺度,提高模型训练效果。智优达
  • 实战技巧
python from sklearn.preprocessing import StandardScaler scaler = StandardScaler() df['normalized_value'] = scaler.fit_transform(df['value'])

3. 特征选择:筛选与排序

  • 特征选择:通过相关性分析,选择重要特征。
  • 代码示例
python corr = df.corr() print(corr)

4. 数据拆分

  • 数据拆分:将数据集分为训练集和测试集。
  • 代码示例
python from sklearn.model_selection import train_test_split X = df.drop('target', axis=1) y = df['target'] X_train, X_test, y_train, X_train, y_train, X_test, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

总结:通过合理的预处理,可大幅提升模型性能。建议优先处理数据清洗和特征工程,确保数据质量。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/3 6:06:17

【SSVEP】基于SSVEP检测频率导向脑活动的VR实验附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。 &#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室 &#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#…

作者头像 李华
网站建设 2026/8/5 13:57:31

基于51单片机的水质检测 PH TDS 温度+浊度+报警

目录 基于51单片机的水质检测系统设计硬件组成软件设计校准与优化扩展功能 源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01; 基于51单片机的水质检测系统设计 该系统以51单片机为核心&#xff0c;集成多种传感器模块&#xff0c;实时监…

作者头像 李华
网站建设 2026/8/4 16:18:52

Java毕设项目推荐-基于springboot的午托晚托培训机构课后服务平台小程序【附源码+文档,调试定制服务】

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/8/3 11:25:51

鸿蒙中级课程笔记3—ArkUI进阶2—给应用添加交互(弹窗)

弹窗概述 弹窗一般指打开应用时自动弹出或者用户行为操作时弹出的UI界面&#xff0c;用于短时间内展示用户需关注的信息或待处理的操作。 从ArkUI组件树层级上来看&#xff0c;Overlay浮层、弹窗、模态、带Order的Overlay浮层都挂载在Root节点下。弹窗、模态、带Order的Overl…

作者头像 李华