Pandas 处理 dummy variable

Pandas 处理 dummy variable

本文我们将简单介绍一下内容

  • Dummy Variable的含义
  • Pandas 处理实例

本文所有代码(运行在Jupyter Notebook)以及数据集可以在我的资源主页–Pandas_Dummy_Variable进行下载

Dummy Variable

  • Dummy Variable 中文称哑变量,或者称虚拟变量(这个名字总觉得怪怪的),指的是反映属性的一种变量。
  • 哑变量的值通常取0或者1, 比如 0表示非本科学位, 1表示本科学位。
  • 在很多数据处理中,我们都需要对数据进行哑变量处理。例如,某个数据中的月份用1-12进行表示,但是月份的值本身并没有数值上的意义,比方说2月份比1月份多,这显然是不合理的。

Dummy Variable处理步骤

我们将通过一个具体的例子来说明处理哑变量的基本处理步骤

Step 1 读入数据

import pandas as pd

data_path = 'Bike-Sharing-Dataset/hour.csv'

riders = pd.read_csv(data_path)
riders.head()

这里写图片描述

Step 2 处理数据

  • 从数据集属性的解释中,我们可以知道 season,mnth,weekday,hr,weathersit,yr,holiday 都是哑变量
  • 其中yr, holiday只有两个值,用0或者1表示即可
  • season,mnth,weekday,hr,weathersit 为待处理数据
  • 使用get_dummies处理数据

Step 3 与原数据进行拼接

  • 使用concat进行拼接
dummy_fields = ['season', 'mnth', 'weekday', 'weathersit', 'hr']

for each in dummy_fields:
    # get_dummies处理数据,参数prefix是指处理之后数据的前缀
    # 例如mnth共有12个值,处理之后属性mnth将会被分解成12个属性,每个属性用0或者1表示
    # mnth将被分解为mnth_1, mnth_2, ..., mnth_12
    # 原本mnth=1的情况将变成 mnth_1 = 1,其余mnth_2,...,mnth_12都是0
    dummies = pd.get_dummies( rider.loc[:, each], prefix=each ) 
    riders = pd.concat( [riders, dummies], axis = 1 )

Step 4 删除原数据中哑变量

  • 数据中的哑变量已经处理完毕,那么原来数据的这些哑变量应该被删除
  • 使用drop进行删除
# 除了哑变量之外,还有其他的变量对于训练没有任何作用,也应该被删除
fields_to_drop = ['instant', 'dteday', 'season', 'weathersit', 
                  'weekday', 'atemp', 'mnth', 'workingday', 'hr']

data = riders.drop( fields_to_drop, axis = 1 )
data.head()

这里写图片描述

总结

  • 介绍了Dummy Variable的含义
  • 处理流程
    1. 读入数据
    2. 识别哑变量并获取,利用get_dummies进行处理
    3. 将处理后的哑变量与原数据进行拼接
    4. 删除原数据中不必要变量
  • 本文所有代码(运行在Jupyter Notebook)以及数据集可以在我的资源主页–Pandas_Dummy_Variable进行下载
  • 11
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值