kaggle中的中风预测数据集数据清洗代码
时间: 2023-10-02 19:12:11 浏览: 178
kaggle新手房价预测数据集.rar
以下是针对 Kaggle 中的 Stroke Prediction 数据集进行数据清洗的 Python 代码:
```python
import pandas as pd
import numpy as np
# 导入数据
data = pd.read_csv('healthcare-dataset-stroke-data.csv')
# 查看缺失值情况
print(data.isnull().sum())
# 处理 BMI 缺失值
mean_bmi = data['bmi'].mean()
data['bmi'].fillna(mean_bmi, inplace=True)
# 处理 smoking_status 缺失值
mode_smoking = data['smoking_status'].mode()
data['smoking_status'].fillna(mode_smoking[0], inplace=True)
# 处理其他缺失值
data.dropna(inplace=True)
# 处理分类变量
data['gender'] = data['gender'].map({'Male': 0, 'Female': 1, 'Other': 2}).astype(int)
data['ever_married'] = data['ever_married'].map({'No': 0, 'Yes': 1}).astype(int)
data['work_type'] = data['work_type'].map({'Private': 0, 'Self-employed': 1, 'Govt_job': 2, 'children': 3, 'Never_worked': 4}).astype(int)
data['Residence_type'] = data['Residence_type'].map({'Rural': 0, 'Urban': 1}).astype(int)
data['smoking_status'] = data['smoking_status'].map({'never smoked': 0, 'formerly smoked': 1, 'smokes': 2, 'Unknown': 3}).astype(int)
# 处理年龄数据
data['age'] = pd.cut(data['age'], bins=[0, 18, 35, 50, 65, 200], labels=[1, 2, 3, 4, 5])
# 处理 BMI 数据
data['bmi'] = pd.cut(data['bmi'], bins=[0, 18.5, 24.9, 29.9, 100], labels=[0, 1, 2, 3])
# 处理 avg_glucose_level 数据
data['avg_glucose_level'] = pd.cut(data['avg_glucose_level'], bins=[0, 70, 100, 125, np.inf], labels=[0, 1, 2, 3])
# 查看处理后的数据
print(data.head())
```
这段代码实现了以下功能:
1. 导入数据,并查看缺失值情况;
2. 处理 BMI 和 smoking_status 的缺失值;
3. 处理其他缺失值;
4. 处理分类变量;
5. 处理年龄、BMI 和 avg_glucose_level 数据;
6. 查看处理后的数据。
需要注意的是,在处理分类变量时,需要根据数据集中的实际情况进行相应的处理。例如,在这个数据集中,gender 变量有三种取值,因此将其分别映射为 0、1 和 2。如果数据集中的分类变量取值较多,可以考虑使用 One-Hot 编码等方法。
阅读全文