数据预处理流程

本文总结了数据预处理的关键步骤,包括初步探索数据的基本信息,检查样本重复性,处理缺失值和无穷值,以及数据类型转变。通过Kaggle上的elo用户忠诚度预测数据集作为实例,详细阐述了如何进行样本重复性检验,使用.unique()和.nunique()函数,以及如何处理缺失值,如利用众数、均值填补或删除。此外,还讨论了数据类型转变,特别是离散变量的字典编码方法。
摘要由CSDN通过智能技术生成

数据预处理流程总结

下面分享一下自己通常会用到的一些数据预处理的方法和步骤,用Kaggle平台上的elo用户忠诚度预测的数据集作为应用案例。

在这里插入图片描述

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']
merchant = pd.read_csv(r'\原始数据\elo-merchant-category-recommendation\merchants.csv', header=0)

一、初步探索

拿到一份数据,首先要确定样本大小、特征个数、字段类型这些基本信息。用.info()可以初步得到数据集的这些信息

merchant.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 334696 entries, 0 to 334695
Data columns (total 22 columns):
 #   Column                       Non-Null Count   Dtype  
---  ------                       --------------   -----  
 0   merchant_id                  334696 non-null  object 
 1   merchant_group_id            334696 non-null  int64  
 2   merchant_category_id         334696 non-null  int64  
 3   subsector_id                 334696 non-null  int64  
 4   numerical_1                  334696 non-null  float64
 5   numerical_2                  334696 non-null  float64
 6   category_1                   334696 non-null  object 
 7   most_recent_sales_range      334696 non-null  object 
 8   most_recent_purchases_range  334696 non-null  object 
 9   avg_sales_lag3               334683 non-null  float64
 10  avg_purchases_lag3           334696 non-null  float64
 11  active_months_lag3           334696 non-null  int64  
 12  avg_sales_lag6               334683 non-null  float64
 13  avg_purchases_lag6           334696 non-null  float64
 14  active_months_lag6           334696 non-null  int64  
 15  avg_sales_lag12              334683 non-null  float64
 16  avg_purchases_lag12          334696 non-null  float64
 17  active_months_lag12          334696 non-null  int64  
 18  category_4                   334696 non-null  object 
 19  city_id                      334696 non-null  int64  
 20  state_id                     334696 non-null  int64  
 21  category_2                   322809 non-null  float64
dtypes: float64(9), int64(8), object(5)
memory usage: 56.2+ MB

用.info()搞清楚哪些是分类变量,哪些是数值型变量,分类进行处理。可以先把变量名分类放入category_cols、numeric_cols两个列表中,等待后续操作。

由于object类型变量中有一些离散型变量,之后要把它们的取值映射到数值上(比如category_1有3个取值,分别是A 、B、C,无法直接对它们进行建模计算,要把它们分别转化成0、1、2),也可以把这样的object型变量名存放起来。

category_cols = ['merchant_id', 'merchant_group_id', 'merchant_category_id',
       'subsector_id', 'category_1',
       'most_recent_sales_range', 'most_recent_purchases_range',
       'category_4', 'city_id', 'state_id', 'category_2']
numeric_cols = ['numerical_1', 'numerical_2',
     'avg_sales_lag3', 'avg_purchases_lag3', 'active_months_lag3',
       'avg_sales_lag6', 'avg_purchases_lag6', 'active_months_lag6
  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值