{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    " # TODO:连接数据库\n",
    "import pymysql\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "# 打开数据库连接\n",
    "db = pymysql.connect(host='localhost',\n",
    "                     user='root',\n",
    "                     password='root',\n",
    "                     db='test_db',\n",
    "                     charset='utf8mb4',\n",
    "                     cursorclass=pymysql.cursors.DictCursor)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>applicant</th>\n",
       "      <th>status</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20000001</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>20000001</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20000001</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20000002</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>20000002</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>20000002</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>20000003</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>20000003</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>20000004</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>20000004</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>20000004</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>20000004</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>20000004</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>20000005</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>20000005</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>20000005</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>20000006</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>20000006</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>20000007</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>20000008</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>20000009</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>21</th>\n",
       "      <td>20000009</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>22</th>\n",
       "      <td>20000009</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23</th>\n",
       "      <td>20000009</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>24</th>\n",
       "      <td>20000009</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25</th>\n",
       "      <td>20000010</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>26</th>\n",
       "      <td>20000010</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>27</th>\n",
       "      <td>20000010</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>28</th>\n",
       "      <td>20000010</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29</th>\n",
       "      <td>20000010</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>70</th>\n",
       "      <td>20000027</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>71</th>\n",
       "      <td>20000028</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>72</th>\n",
       "      <td>20000028</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>73</th>\n",
       "      <td>20000028</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>74</th>\n",
       "      <td>20000029</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75</th>\n",
       "      <td>20000029</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>76</th>\n",
       "      <td>20000030</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>77</th>\n",
       "      <td>20000030</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>78</th>\n",
       "      <td>20000031</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>79</th>\n",
       "      <td>20000032</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>80</th>\n",
       "      <td>20000032</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>81</th>\n",
       "      <td>20000032</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>82</th>\n",
       "      <td>20000033</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>83</th>\n",
       "      <td>20000033</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>84</th>\n",
       "      <td>20000034</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>85</th>\n",
       "      <td>20000034</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>86</th>\n",
       "      <td>20000035</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>87</th>\n",
       "      <td>20000035</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>88</th>\n",
       "      <td>20000035</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>89</th>\n",
       "      <td>20000035</td>\n",
       "      <td>OVERDUE</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>90</th>\n",
       "      <td>20000036</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>91</th>\n",
       "      <td>20000037</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>92</th>\n",
       "      <td>20000038</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>93</th>\n",
       "      <td>20000038</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>94</th>\n",
       "      <td>20000038</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>95</th>\n",
       "      <td>20000039</td>\n",
       "      <td>REPAID</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>96</th>\n",
       "      <td>20000039</td>\n",
       "      <td>RETURNING</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>97</th>\n",
       "      <td>20000040</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>98</th>\n",
       "      <td>20000041</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>99</th>\n",
       "      <td>20000041</td>\n",
       "      <td>IN_PROGREESS</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>100 rows × 2 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    applicant        status\n",
       "0    20000001        REPAID\n",
       "1    20000001        REPAID\n",
       "2    20000001        REPAID\n",
       "3    20000002     RETURNING\n",
       "4    20000002  IN_PROGREESS\n",
       "5    20000002        REPAID\n",
       "6    20000003        REPAID\n",
       "7    20000003  IN_PROGREESS\n",
       "8    20000004  IN_PROGREESS\n",
       "9    20000004        REPAID\n",
       "10   20000004  IN_PROGREESS\n",
       "11   20000004  IN_PROGREESS\n",
       "12   20000004        REPAID\n",
       "13   20000005        REPAID\n",
       "14   20000005  IN_PROGREESS\n",
       "15   20000005     RETURNING\n",
       "16   20000006  IN_PROGREESS\n",
       "17   20000006  IN_PROGREESS\n",
       "18   20000007  IN_PROGREESS\n",
       "19   20000008  IN_PROGREESS\n",
       "20   20000009     RETURNING\n",
       "21   20000009     RETURNING\n",
       "22   20000009     RETURNING\n",
       "23   20000009     RETURNING\n",
       "24   20000009  IN_PROGREESS\n",
       "25   20000010        REPAID\n",
       "26   20000010  IN_PROGREESS\n",
       "27   20000010  IN_PROGREESS\n",
       "28   20000010     RETURNING\n",
       "29   20000010  IN_PROGREESS\n",
       "..        ...           ...\n",
       "70   20000027     RETURNING\n",
       "71   20000028  IN_PROGREESS\n",
       "72   20000028  IN_PROGREESS\n",
       "73   20000028     RETURNING\n",
       "74   20000029        REPAID\n",
       "75   20000029     RETURNING\n",
       "76   20000030     RETURNING\n",
       "77   20000030        REPAID\n",
       "78   20000031  IN_PROGREESS\n",
       "79   20000032  IN_PROGREESS\n",
       "80   20000032  IN_PROGREESS\n",
       "81   20000032     RETURNING\n",
       "82   20000033        REPAID\n",
       "83   20000033  IN_PROGREESS\n",
       "84   20000034  IN_PROGREESS\n",
       "85   20000034  IN_PROGREESS\n",
       "86   20000035  IN_PROGREESS\n",
       "87   20000035        REPAID\n",
       "88   20000035     RETURNING\n",
       "89   20000035       OVERDUE\n",
       "90   20000036  IN_PROGREESS\n",
       "91   20000037  IN_PROGREESS\n",
       "92   20000038        REPAID\n",
       "93   20000038  IN_PROGREESS\n",
       "94   20000038     RETURNING\n",
       "95   20000039        REPAID\n",
       "96   20000039     RETURNING\n",
       "97   20000040  IN_PROGREESS\n",
       "98   20000041  IN_PROGREESS\n",
       "99   20000041  IN_PROGREESS\n",
       "\n",
       "[100 rows x 2 columns]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#  # 查询person表\n",
    "# person_sql =\"select count(sex) as F_count from person where sex = 'FEMALE' union all select count(sex) as M_count from person where sex = 'MALE'\"\n",
    "# person_detail=pd.read_sql(sql=person_sql,con=db)\n",
    "\n",
    "# 查询apply表\n",
    "apply_sql = 'select applicant, status from apply limit 100'\n",
    "apply_detail = pd.read_sql(sql=apply_sql, con=db) \n",
    "apply_detail\n",
    "# apply_count_sql = \"select count(*) from apply where status = 'REPAID' union all select count(*) from apply where status = 'RETURNING' union all select count(*) from apply where status = 'IN_PROGREESS' union all select count(*) from apply where status = 'OVERDUE'\"\n",
    "# apply_count = pd.read_sql(sql=apply_count_sql, con=db) \n",
    "\n",
    "\n",
    "# # 查询call表\n",
    "# call_sql =\n",
    "# call_detail=pd.read_sql(sql=call_sql,con=db)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    " ## 任务1:查询某个用户是否有处于OVERDUE状态的进件\n",
    " 方法1: 通过代码查询 <br> 方法2: 通过sql语句查询"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "# 获取当前借款人是否有OVERDUE状态的进件(通过代码实现)\n",
    "def get_od_apply(person_id):\n",
    "    # 通过apply_detail拿到'applicant','status'两列的值\n",
    "    apply_list_1 = apply_detail.values\n",
    "    apply_list = apply_list_1.tolist()\n",
    "    # 遍历apply_list,找到person_id,如果有OVERDUE状态进件则返回True,否则返回False\n",
    "    for i in apply_list:\n",
    "        if i[0] == person_id:\n",
    "            if i[1] == 'OVERDUE':\n",
    "                return True\n",
    "            else:\n",
    "                continue\n",
    "        if i[0] > person_id:\n",
    "            return False\n",
    "    \n",
    "print(get_od_apply(20000001))    # False\n",
    "print(get_od_apply(20000035))    # True"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   applicant   status\n",
      "0   20000035  OVERDUE\n",
      "Empty DataFrame\n",
      "Columns: [applicant, status]\n",
      "Index: []\n"
     ]
    }
   ],
   "source": [
    "# TODU:获取当前借款人是否有OVERDUE状态的进件(通过sql语句实现)\n",
    "\n",
    "# sql查询用户id为20000035的用户是否有OVERDUE状态的进件\n",
    "sql1 = \"select applicant,status from apply where applicant =20000035 and status = 'OVERDUE'\"\n",
    "status1 = pd.read_sql(sql=sql1, con=db)\n",
    "print(status1)\n",
    "\n",
    "\n",
    "# # sql查询用户id为20000001的用户是否有OVERDUE状态的进件\n",
    "sql2 = \"select applicant,status from apply where applicant =20000001 and status = 'OVERDUE'\"\n",
    "stauts2 =  pd.read_sql(sql=sql2, con=db)\n",
    "print(stauts2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 任务2:\n",
    "1.根据给定金融借款数据,分析出在已知借款人中,男女的具体比例。根据查询结果,画出饼图进行展示。<br>\n",
    "2.查询各种状态进件所占百分比,画出饼图进行展示。<br>\n",
    "3.根据进件状态,分析出男人逾期的概率大还是女人逾期的概率大。<br>\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TODU:查询男、女各占比例,并绘制成饼图\n",
    "# 从person_info中获取'FEMALE','MALE'的人数\n",
    "Female_value = person_detail[\"F_count\"][0]\n",
    "Male_value = person_detail[\"F_count\"][1]\n",
    "# 绘制饼图\n",
    "\n",
    "labels = 'FEMALE', 'MALE'\n",
    "fracs = [Female_value, Male_value]\n",
    "explode = (0,0)\n",
    "plt.pie(fracs, labels=labels, explode=explode, autopct='%1.1f%%')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# TODU:查询各状态进件所占百分比,并绘制成饼图\n",
    "# 从apply_detail中获取各状态进件的数量\n",
    "apply_REPAID_count = apply_count[\"count(*)\"][0]\n",
    "apply_RETURNING_count = apply_count[\"count(*)\"][1]\n",
    "apply_IN_PROGREESS_count = apply_count[\"count(*)\"][2]\n",
    "apply_OVERDUE_count = apply_count[\"count(*)\"][3]\n",
    "labels = 'REPAID', 'RETURNING', 'IN_PROGREESS', 'OVERDUE'\n",
    "fracs = [apply_REPAID_count, apply_RETURNING_count, apply_IN_PROGREESS_count, apply_OVERDUE_count]\n",
    "explode = (0,0,0,0)\n",
    "plt.pie(fracs, labels=labels, explode=explode, autopct='%1.1f%%')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "有2451名男性用户\n",
      "有2549名女性用户\n",
      "有25名逾期女性用户\n",
      "有44名逾期男性用户\n",
      "男人逾期概率为:0.017952\n",
      "女人逾期概率为:0.009808\n"
     ]
    }
   ],
   "source": [
    "# TODO:查询一共有多少女性及男性用户\n",
    "male_count = person_detail[\"F_count\"][1]\n",
    "female_count = person_detail[\"F_count\"][0]\n",
    "# 计算male_count与female_count值\n",
    "\n",
    "print('有%d名男性用户'%male_count)\n",
    "print('有%d名女性用户'%female_count)\n",
    "\n",
    "# 通过sql语句查询所有拥有逾期状态(OVERDUE)进件的女性用户数\n",
    "sql = \"select count(sex) from person a ,apply b where a.sex ='FEMALE' and b.status = 'OVERDUE' and a.id = b.applicant\"\n",
    "overdue_female_detail=pd.read_sql(sql=sql, con=db)\n",
    "# 通过pandas读取数据库,计算逾期女性用户数量\n",
    "overdue_female_count = overdue_female_detail[\"count(sex)\"][0]\n",
    "print('有%d名逾期女性用户'%overdue_female_count)\n",
    "\n",
    "# 通过sql语句查询所有拥有逾期状态(OVERDUE)进件的男性用户数\n",
    "sql = \"select count(sex) from person a ,apply b where a.sex ='MALE' and b.status = 'OVERDUE' and a.id = b.applicant\"\n",
    "overdue_male_detail=pd.read_sql(sql=sql, con=db)\n",
    "overdue_male_count = overdue_male_detail[\"count(sex)\"][0]\n",
    "# 通过pandas读取数据库,计算逾期男性用户数量\n",
    "print('有%d名逾期男性用户'%overdue_male_count)\n",
    "\n",
    "# 根据以上结果,分析出男人逾期的概率大还是女人逾期的概率大。\n",
    "pro_male = overdue_male_count / male_count\n",
    "pro_female = overdue_female_count / female_count\n",
    "print('男人逾期概率为:%f'%pro_male)\n",
    "print('女人逾期概率为:%f'%pro_female)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 任务3:\n",
    "查询每个人申请的进件数,绘制直方图<br>\n",
    "通过观察直方图,判断用户是倾向于贷多笔款项,还是倾向于尽可能少的使用贷款<br>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (<ipython-input-47-f63102f0ce31>, line 4)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;36m  File \u001b[0;32m\"<ipython-input-47-f63102f0ce31>\"\u001b[0;36m, line \u001b[0;32m4\u001b[0m\n\u001b[0;31m    count =\u001b[0m\n\u001b[0m            ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "# TODO:绘制单人申请进件数量的直方图(通过代码实现)\n",
    "\n",
    "# 通过apply_detail计算每个applicant出现的次数(即每个人申请的进件数)\n",
    "count = \n",
    "# 绘制直方图\n",
    "plt.hist(count)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "# TODO:绘制单人申请进件数量的直方图(通过sql语句实现)\n",
    "\n",
    "# 通过sql语句查询每个applicant出现的次数(即每个人申请的进件数)\n",
    "sql =\n",
    "# 通过pandas读取\n",
    "df = pd.read_sql(sql=sql,con=db)\n",
    "# 绘制直方图\n",
    "plt.hist()\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}