Python 训练 day5

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

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

1. 读取data数据

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

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

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

过程:

1. 读取data数据

import pandas as pd
data = pd.read_csv(r"C:\Users\22864\Desktop\python60-days-challenge-master\data.csv")

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

#找到离散型数据
discrect_lists = []
for discrect_feature in data.columns:
    if data[discrect_feature].dtype == "object":
        discrect_lists.append(discrect_feature)
print(discrect_lists)

#对数据进行独热编码
data = pd.get_dummies(data,columns=discrect_lists,drop_first=True)
data.columns

#独热编码后产生了新的特征名,需要找出新特征名
data2 = pd.read_csv(r"C:\Users\22864\Desktop\python60-days-challenge-master\data.csv")
list_final = []
for i in data.columns:
    if i not in data2.columns:
        list_final.append(i)

#对新特证名bool,进行类型转化int
for i in list_final:
    data[i] = data[i].astype(int)

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

#利用均值填充缺失值
data.isnull().sum()
for i in data.columns:
    if data[i].isnull().sum() > 0:
        mean_value = data[i].mean()
        data[i].fillna(mean_value,inplace=True)

data.isnull().sum()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值