打卡第七天

今天主要是对心脏病的数据进行一个预处理

首先是读取数据并找出缺失值。

import pandas as pd
data = pd.read_csv(r'C:\Users\许兰\Desktop\打卡文件\python60-days-challenge-master\heart.csv')
print(data.isnull().sum())

但是结果是没有缺失值,所以没有进行缺失值补全

第二步是找到离散特征,并尝试分别对一个离散特征做独热编码,和一次性对所有离散特征做独热编码。

import pandas as pd
data = pd.read_csv(r'C:\Users\许兰\Desktop\打卡文件\python60-days-challenge-master\heart.csv')
print(data.columns)
for discrete_features in data.columns:
    if data[discrete_features].dtype =='object':
        print(discrete_features)
print(data['target'].value_counts())
data = pd.get_dummies(data, columns = ['target'])
data['target_0'] = data['target_0'].astype(int)
print(data.head())

这里主要是对target这一个离散特征做了独热编码 

过程是for循环找到离散变量,用其中的一个离散变量用.value_counts查看类型分布,确定没有顺序关系后进行独热编码,最后转化数据类型。

然后我再对所有的离散特征进行独热编码

import pandas as pd
data = pd.read_csv(r'C:\Users\许兰\Desktop\打卡文件\python60-days-challenge-master\heart.csv')
print(data.columns)
discrete_list = []
for i in data.columns:
    if data[i].dtype =='object':
        discrete_list.append(i)
data = pd.get_dummies(data,columns=discrete_list,drop_first=True)
data2 = pd.read_csv(r'C:\Users\许兰\Desktop\打卡文件\python60-days-challenge-master\heart.csv')
list_final = []
for i in data.columns:
    if i not in data2.columns:
        list_final.append(i)
for i in list_final:
    data[i] =data[i].astype(int)
print(data.isnull().sum())

过程:首先还是读取数据,然后定义列表存放离散特征,并进行独热编码,对比原先的数据,找到独热编码后的数据名称存放到新的列表,并改变数据的类型,最后统计缺失值,发现并没有。

数据可视化

准备先找个连续变量和标签整个箱线图和核密度直方图;然后整个离散变量和标签的直方图

import pandas as pd 
data = pd.read_csv(r'C:\Users\许兰\Desktop\打卡文件\python60-days-challenge-master\heart.csv')
print(data.head())
continuous_features = []
for i in data.columns:
    if data[i].dtype != 'object':
        continuous_features.append(i)
print(continuous_features)
import matplotlib.pyplot as plt
import seaborn as sns
sns.boxplot(x=data['sex'],y=data['trestbps'])
plt.title('sex vs trestbps')
plt.xlabel('sex')
plt.ylabel('trestbps')
plt.show()

过程是,先读取数据,查看表格内的分类标签,如性别,找到连续变量,绘制箱线图 

核密度直方图

import matplotlib.pyplot as plt
import seaborn as sns
sns.histplot(x='trestbps', hue='sex', data=data, kde=True, element="step")
plt.title('sex vs trestbps')
plt.xlabel('trestbps')
plt.ylabel('count')
plt.show()

 

我尽力了,是我选的连续变量不好 ,这个图还是不够美观。

然后是离散变量与标签的计数条形图

import matplotlib.pyplot as plt
import seaborn as sns
sns.countplot(x='exang', hue='sex', data=data)
plt.title('sex vs exang')
plt.xlabel('exang')
plt.ylabel('count')
plt.show()

 

复习完毕,这里@浙大疏锦行 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值