第1关:数据归约
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,使用数值规约的无参方法中的直方图展示不同年龄的发病次数。
图片生产要求如下:
-
设置图片大小 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 *********#
plt.figure(figsize=(10,10))
x=pd.Series(train['Age'])
count=x.value_counts()
count.plot(kind='bar')
plt.savefig("Task1/img/T1.png")
plt.show()
#********* End *********#
第2关:数据离散化
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,将 Age 字段分 3 个区间 [0,30,50,90] ,并对各区间计数。
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?']).dropna()
#********* Begin *********#
bin=[0,30,50,90]
a=pd.cut(train["Age"],bin)
print(pd.value_counts(a))
#********* End *********#

该代码实现对糖尿病患者数据的预处理,包括数值归约和数据离散化。首先,通过填充缺失值对Insulin、SkinThickness、BloodPressure和BMI字段进行数据规约。然后,利用直方图展示不同年龄的发病次数。接着,将Age字段分为[0,30,50,90]三个区间,并统计各区间内的样本数量。这些步骤有助于数据的简化和后续的分析。
307

被折叠的 条评论
为什么被折叠?



