{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "\n",
    "# 加载数据集并指定编码为gbk\n",
    "data = _________\n",
    "\n",
    "# 查看数据类型\n",
    "print(data.dtypes)\n",
    "# 查看表结构基本信息\n",
    "print(_________)\n",
    "\n",
    "# 显示每一列的空缺值数量\n",
    "print(data.isnull().sum())\n",
    "\n",
    "# 规范日期格式\n",
    "data['就诊日期'] = pd.to_datetime(data['就诊日期'])\n",
    "data['诊断日期'] = pd.to_datetime(data['诊断日期'])\n",
    "\n",
    "# 修改列名\n",
    "_________(_________, inplace=True)\n",
    "\n",
    "# 查看修改后的表结构\n",
    "print(data.head())\n",
    "\n",
    "from datetime import datetime\n",
    "\n",
    "# 增加诊断延迟和病程列\n",
    "data['诊断延迟'] = _________.dt.days\n",
    "data['病程'] = (datetime(2024, 9, 1) - data['诊断日期']).dt.days\n",
    "\n",
    "# 删除不合理的数据\n",
    "data = _________[(_________ >= 0) & (_________ > 0) & (_________ < 120)]\n",
    "\n",
    "# 查看修改后的数据\n",
    "print(data.describe())\n",
    "\n",
    "# 删除重复值并记录删除的行数\n",
    "initial_rows = data.shape[0]\n",
    "_________(inplace=True)\n",
    "deleted_rows = initial_rows - data.shape[0]\n",
    "\n",
    "print(f'删除的重复行数: {deleted_rows}')\n",
    "\n",
    "from sklearn.preprocessing import MinMaxScaler\n",
    "\n",
    "# 对需要归一化的列进行处理\n",
    "scaler = MinMaxScaler()\n",
    "columns_to_normalize = [_________]\n",
    "data[columns_to_normalize] = _________\n",
    "\n",
    "# 查看归一化后的数据\n",
    "print(data.head())\n",
    "\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import matplotlib.font_manager as fm\n",
    "\n",
    "\n",
    "# 统计治疗结果分布\n",
    "treatment_outcome_distribution = data.groupby('疾病类型')['治疗结果'].value_counts().unstack()\n",
    "\n",
    "# 设置中文字体\n",
    "# 如果把素材下载到自己电脑本地运行的话，需要根据你的系统调整为下面的字体路径\n",
    "# font_path = 'C:/Windows/Fonts/simhei.ttf'  \n",
    "\n",
    "# 在平台中运行则指定为下面的字体路径\n",
    "font_path = '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc'\n",
    "matplotlib.rcParams['font.sans-serif'] = ['WenQuanYi Zen Hei']  # 替换为实际字体名\n",
    "matplotlib.rcParams['axes.unicode_minus'] = False  # 解决负号显示问题\n",
    "my_font = fm.FontProperties(fname=font_path)\n",
    "\n",
    "# 绘制柱状图\n",
    "_________(_________, stacked=True)\n",
    "plt.title('不同疾病类型的治疗结果分布', fontproperties=my_font)\n",
    "plt.xlabel('疾病类型', fontproperties=my_font)\n",
    "plt.ylabel('治疗结果数量', fontproperties=my_font)\n",
    "plt.xticks(fontproperties=my_font)  # 设置x轴刻度标签的字体\n",
    "plt.yticks(fontproperties=my_font)  # 设置y轴刻度标签的字体\n",
    "plt.legend(prop=my_font)  # 设置图例字体\n",
    "plt.show()\n",
    "\n",
    "# 绘制散点图\n",
    "_________(_________, _________)\n",
    "plt.title('年龄和疾病严重程度的关系', fontproperties=my_font)\n",
    "plt.xlabel('年龄', fontproperties=my_font)\n",
    "plt.ylabel('疾病严重程度', fontproperties=my_font)\n",
    "plt.xticks(fontproperties=my_font)  # 设置x轴刻度标签的字体\n",
    "plt.yticks(fontproperties=my_font)  # 设置y轴刻度标签的字体\n",
    "plt.legend(prop=my_font)  # 设置图例字体\n",
    "plt.show()\n",
    "\n",
    "# 保存处理后得数据\n",
    "output_path = '2.1.4_cleaned_data.csv'\n",
    "_________(_________, index=False)"
   ]
  }
 ],
 "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
}
