头歌python 数据科学导论——数据预处理
·
第1关:引言-根深之树不怯风折,泉深之水不会涸竭

第2关:数据清理-查漏补缺
任务描述
本关任务:模型的基线取决于数据的好坏,本关将学习数据处理的常用处理。编程要求
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,通过上图可视化的方式可以发现在最右边有一个离群点,请将数据中的离群点去除,并将清洗数据可视化展示。具体绘图要求如下:
数据文件为 Task1/diabetes_null.csv;
figsize 设置为 (10,10);
图形保存到 Task1/img/T1.png。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
def student():
train = pd.read_csv('Task1/diabetes_null.csv', na_values=['#NAME?'])
train['Insulin'] = train['Insulin'].fillna(100)
train['SkinThickness'] = train['SkinThickness'].fillna(train['SkinThickness'].median())
train['BloodPressure'] = train['BloodPressure'].fillna(train['BloodPressure'].median())
train['BMI'] = train['BMI'].fillna(train['BMI'].mean())
train['Glucose'] = train['Glucose'].fillna(train['Glucose'].mean())
#********* Begin *********#
max_age = train['Age'].max()
train = train[train['Age'] < max_age]
plt.figure(figsize=(10, 10))
plt.scatter(train['Age'], train['Pregnancies'])
plt.savefig('Task1/img/T1.png')
#********* End *********#
第3关:数据集成-海纳百川
任务描述
本关任务:编写一个能够将两个数据集合并的程序。编程要求
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,读入数据 Task2/diabetes_null.csv 和 Task2/diabetes_zero.csv ,合并两个数据并输出 shape。
import numpy as np
import pandas as pd
def student():
#********* Begin *********#
df1 = pd.read_csv('Task2/diabetes_null.csv')
df2 = pd.read_csv('Task2/diabetes_zero.csv')
df = pd.concat([df1,df2])
print(df.shape)
#********* End *********#
第4关:数据变换-同源共流
任务描述
本关任务:学习掌握常见的数据变换,完成给定数据的规范化的输出。编程要求
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,计算并输出数据集 diabetes_null.csv 的 z-score 规范化和最小-最大规范化。( z-score 需设置参数 axis=0 ,以标准化每个特征)
import numpy as np
import pandas as pd
from sklearn.preprocessing import normalize,MinMaxScaler
def student():
train = pd.read_csv('Task3/diabetes_null.csv', na_values=['#NAME?'])
train['Insulin'] = train['Insulin'].fillna(100)
train['SkinThickness'] = train['SkinThickness'].fillna(train['SkinThickness'].median())
train['BloodPressure'] = train['BloodPressure'].fillna(train['BloodPressure'].median())
train['BMI'] = train['BMI'].fillna(train['BMI'].mean())
train['Glucose'] = train['Glucose'].fillna(train['Glucose'].mean())
#********* Begin *********#
data_normalized = normalize(train,axis=0)
print("z-score规范化:\n",data_normalized)
data_scaler = MinMaxScaler()
data_scaled = data_scaler.fit_transform(train)
print("\n最小-最大规范化:\n",data_scaled)
#********* End *********#
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)