第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 *********#