Python打卡DAY5

@浙大疏锦行

DAY 5 独热编码

题目:离散特征的独热编码

先按照示例代码过一遍,然后完成下列题目

现在在py文件中 一次性处理data数据中所有的连续变量和离散变量

1. 读取data数据

2. 对离散变量进行one-hot编码

3. 对独热编码后的变量转化为int类型

4.对所有缺失值进行填充

1.找出离散变量

import pandas as pd
data = pd.read_csv('data.csv') 

data.columns 
for discrete_features in data.columns:
    if data[discrete_features].dtype == 'object':
        print(discrete_features)

结果

2.打印一下Home Ownership

data['Home Ownership']

结果

3.统计该列每个类别个数

data['Home Ownership'].value_counts()

结果

英文含义

4.对该列进行独热编码

data = pd.get_dummies(data, columns=['Home Ownership'])
data.columns

结果

可以看到变成了该列名_Rent 或_Own Home 等 添加了下划线

5.查看一下转换后的数据类型,并将bool型转为int型

data.head()
data['Home Ownership_Have Mortgage'] =data ['Home Ownership_Have Mortgage'].astype(int)
data['Home Ownership_Have Mortgage']

6.一次性对所有离散特征进行独热编码

data = pd.read_csv("data.csv")
discrete_lists = [] 
for discrete_features in data.columns:
    if data[discrete_features].dtype == 'object':
        discrete_lists.append(discrete_features)
data = pd.get_dummies(data, columns=discrete_lists, drop_first=True) 
data.columns

打印结果

7.难点-如何找到被独热编码的列名 

data2 = pd.read_csv("data.csv")
list_final = []
for i in data.columns:
    if i not in data2.columns:
       list_final.append(i)
list_final

结果

转换一下类型 将bool型转为int型

for i in list_final:
    data[i] = data[i].astype(int) 
data.head()

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值