人工智能训练师(三级)实操考试 — 2.1.5 健康与营养咨询数据预处理与数据规范设计

← 返回题目列表 考核时间:20 分钟 20:00
工作任务

在健康与营养咨询领域,客户的健康数据是评估其饮食和生活方式建议的重要依据。通过对客户健康数据的分析,可以帮助健康咨询师更准确地评估客户的健康状况,并制定个性化的营养和健康管理计划。现提供一份健康咨询客户数据集。请补全 2.1.5.ipynb 代码,完成下面的数据预处理任务:

具体要求

(1)加载数据集:查看表的数据类型,表结构和显示每一列的空缺值数量;

(2)去掉列名中的空格;

(3)缺失值处理:对于含有缺失值的列,进行适当的填充或删除操作;

(4)数据类型转换:将"Your age"列的数据类型转换为整数类型,并处理其中的异常值;

(5)数据去重:检查数据集中的重复值并删除所有重复值,并记录删除的行数;

(6)数据归一化处理:对"How do you describe your current level of fitness ?"列中的数据进行归一化处理;

(7)绘制健身频率分布的饼图;

(8)对数据进行标注划分;

(9)保存处理后的数据,命名为 2.1.5_cleaned_data.csv

注意事项
  • 在代码的 橙色下划线 处填写正确的 Python 代码
  • 请勿修改源代码的其他部分
  • 填写完成后点击 "检查答案" 查看评分
  • 点击 "显示答案" 可直接查看所有参考答案
  • 点击 "重置" 清空所有填写内容
请在下划线处填写代码
当前得分
0 / 16
In [1] — 加载数据集 & 查看信息 3分
import pandas as pd # 加载数据集 1分 data = # 查看表结构基本信息 1分 print() # 显示每一列的空缺值数量 1分 print()
In [2] — 缺失值处理 & 数据类型转换 4分
# 删除含有缺失值的行 1分 data_cleaned = # 转换 'Your age' 列的数据类型为整数类型,并处理异常值 2分 data_cleaned.loc[:, 'Your age'] = (, errors='coerce') data_cleaned = data_cleaned.dropna(subset=['Your age']) data_cleaned = data_cleaned[data_cleaned['Your age'] >= 0] # 转换为整数 1分 data_cleaned.loc[:, 'Your age'] = data_cleaned['Your age']. print(data_cleaned['Your age'].dtype)
In [3] — 数据去重 1分
# 检查和删除重复值 1分 duplicates_removed = data_cleaned.duplicated().sum() data_cleaned = print(f"Removed {duplicates_removed} duplicate rows")
In [4] — 数据归一化处理 2分
from sklearn.preprocessing import LabelEncoder # 归一化 'How do you describe your current level of fitness ?' 列 2分 label_encoder = LabelEncoder() data_cleaned[] = print(data_cleaned['How do you describe your current level of fitness ?'].unique())
In [5] — 绘制健身频率分布饼图 1分
from sklearn.preprocessing import LabelEncoder import matplotlib.pyplot as plt # 去掉列名中的空格 data.columns = data.columns.str.strip() print(data.columns) # 删除包含缺失值的行 data_cleaned = data.dropna(subset=['How often do you exercise?']) # 统计不同健身频率的分布情况 exercise_frequency_counts = data_cleaned['How often do you exercise?'].value_counts() # 绘制饼图 1分 plt.figure(figsize=(10, 6)) (autopct='%1.1f%%', startangle=90, colors=plt.cm.Paired.colors) plt.title('Distribution of Exercise Frequency') plt.ylabel('') plt.show()
In [6] — 数据划分 & 保存 5分
import pandas as pd from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt # 填充缺失值 data_filled = data.apply(lambda x: x.fillna(x.mode()[0])) # 划分数据(测试集占比20%) 2分 train_data, test_data = (, random_state=42) # 保存处理后的数据 3分 cleaned_file_path = '' (, index=False)
答案检查结果