{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# 加载数据集\n",
    "data = __________\n",
    "\n",
    "# 查看表结构基本信息\n",
    "print(__________)\n",
    "\n",
    "# 显示每一列的空缺值数量\n",
    "print(__________)\n",
    "\n",
    "# 删除含有缺失值的行\n",
    "data_cleaned = __________\n",
    "\n",
    "# 转换 'Your age' 列的数据类型为整数类型，并处理异常值\n",
    "data_cleaned.loc[:, 'Your age'] = __________(__________, errors='coerce')\n",
    "data_cleaned = data_cleaned.dropna(subset=['Your age'])\n",
    "data_cleaned = data_cleaned[data_cleaned['Your age'] >= 0]\n",
    "data_cleaned.loc[:, 'Your age'] = data_cleaned['Your age'].__________\n",
    "\n",
    "print(data_cleaned['Your age'].dtype)\n",
    "\n",
    "# 检查和删除重复值\n",
    "duplicates_removed = data_cleaned.duplicated().sum()\n",
    "data_cleaned = __________\n",
    "\n",
    "print(f\"Removed {duplicates_removed} duplicate rows\")\n",
    "\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "\n",
    "# 归一化 'How do you describe your current level of fitness ?' 列\n",
    "label_encoder = LabelEncoder()\n",
    "data_cleaned[__________] = __________\n",
    "\n",
    "print(data_cleaned['How do you describe your current level of fitness ?'].unique())\n",
    "\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 去掉列名中的空格\n",
    "data.columns = data.columns.str.strip()\n",
    "# 显示数据集的列名\n",
    "print(data.columns)\n",
    "\n",
    "# 删除包含缺失值的行\n",
    "data_cleaned = data.dropna(subset=['How often do you exercise?'])\n",
    "\n",
    "# 统计不同健身频率的分布情况\n",
    "exercise_frequency_counts = data_cleaned['How often do you exercise?'].value_counts()\n",
    "\n",
    "import matplotlib\n",
    "import pandas as pd\n",
    "from sklearn.model_selection import train_test_split\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# 绘制饼图\n",
    "plt.figure(figsize=(10, 6))\n",
    "__________(autopct='%1.1f%%', startangle=90, colors=plt.cm.Paired.colors)\n",
    "plt.title('Distribution of Exercise Frequency')\n",
    "plt.ylabel('')\n",
    "plt.show()\n",
    "\n",
    "\n",
    "\n",
    "# 填充缺失值\n",
    "data_filled = data.apply(lambda x: x.fillna(x.mode()[0]))\n",
    "\n",
    "# 划分数据（测试集占比20%）\n",
    "train_data, test_data = __________(__________, random_state=42)\n",
    "\n",
    "# 保存处理后的数据\n",
    "cleaned_file_path = '__________'\n",
    "__________(__________, index=False)\n"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.12.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
