Commit 02277a14 by bonnieyan

部分提交

parent 23ca2b7d
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 2, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 20, "execution_count": 48,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
...@@ -100,8 +100,264 @@ ...@@ -100,8 +100,264 @@
" <td>20000004</td>\n", " <td>20000004</td>\n",
" <td>REPAID</td>\n", " <td>REPAID</td>\n",
" </tr>\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", " </tbody>\n",
"</table>\n", "</table>\n",
"<p>100 rows × 2 columns</p>\n",
"</div>" "</div>"
], ],
"text/plain": [ "text/plain": [
...@@ -115,24 +371,78 @@ ...@@ -115,24 +371,78 @@
"6 20000003 REPAID\n", "6 20000003 REPAID\n",
"7 20000003 IN_PROGREESS\n", "7 20000003 IN_PROGREESS\n",
"8 20000004 IN_PROGREESS\n", "8 20000004 IN_PROGREESS\n",
"9 20000004 REPAID" "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": 20, "execution_count": 48,
"metadata": {}, "metadata": {},
"output_type": "execute_result" "output_type": "execute_result"
} }
], ],
"source": [ "source": [
"# # 查询person表\n", "# # 查询person表\n",
"# person_sql =\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", "# person_detail=pd.read_sql(sql=person_sql,con=db)\n",
"\n", "\n",
"# 查询apply表\n", "# 查询apply表\n",
"apply_sql = 'select applicant, status from apply limit 10'\n", "apply_sql = 'select applicant, status from apply limit 100'\n",
"apply_detail = pd.read_sql(sql=apply_sql, con=db)\n", "apply_detail = pd.read_sql(sql=apply_sql, con=db) \n",
"apply_detail\n", "apply_detail\n",
"\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",
"\n", "\n",
"# # 查询call表\n", "# # 查询call表\n",
...@@ -150,15 +460,15 @@ ...@@ -150,15 +460,15 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 21, "execution_count": 6,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"ename": "IndentationError", "name": "stdout",
"evalue": "unexpected indent (<ipython-input-21-fe8ee5f1b5a0>, line 6)", "output_type": "stream",
"output_type": "error", "text": [
"traceback": [ "False\n",
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-21-fe8ee5f1b5a0>\"\u001b[0;36m, line \u001b[0;32m6\u001b[0m\n\u001b[0;31m for p in apply_list:\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m unexpected indent\n" "True\n"
] ]
} }
], ],
...@@ -166,15 +476,204 @@ ...@@ -166,15 +476,204 @@
"# 获取当前借款人是否有OVERDUE状态的进件(通过代码实现)\n", "# 获取当前借款人是否有OVERDUE状态的进件(通过代码实现)\n",
"def get_od_apply(person_id):\n", "def get_od_apply(person_id):\n",
" # 通过apply_detail拿到'applicant','status'两列的值\n", " # 通过apply_detail拿到'applicant','status'两列的值\n",
" \n", " apply_list_1 = apply_detail.values\n",
" apply_list = apply_detail\n", " apply_list = apply_list_1.tolist()\n",
" for p in apply_list:\n",
" if p == persion_id:\n",
" print(app_list[p])\n",
" # 遍历apply_list,找到person_id,如果有OVERDUE状态进件则返回True,否则返回False\n", " # 遍历apply_list,找到person_id,如果有OVERDUE状态进件则返回True,否则返回False\n",
"\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(20000001)) # False\n",
"# print(get_od_apply(20000035)) # True" "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()"
] ]
}, },
{ {
...@@ -182,7 +681,17 @@ ...@@ -182,7 +681,17 @@
"execution_count": null, "execution_count": null,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [] "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": { "metadata": {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"cells": [ "cells": [
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 20, "execution_count": 1,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [],
"source": [ "source": [
...@@ -21,27 +21,428 @@ ...@@ -21,27 +21,428 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 23, "execution_count": 48,
"metadata": {}, "metadata": {},
"outputs": [ "outputs": [
{ {
"ename": "SyntaxError", "data": {
"evalue": "invalid syntax (<ipython-input-23-51515430e9dc>, line 2)", "text/html": [
"traceback": [ "<div>\n",
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-23-51515430e9dc>\"\u001b[0;36m, line \u001b[0;32m2\u001b[0m\n\u001b[0;31m person_sql ='(select count(MALE) from person where sex = 'MALE' union all select count(FEMALE) from person where sex = 'FEMALEMALE')'\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\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>"
], ],
"output_type": "error" "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": [ "source": [
"# # 查询person表\n", "# # 查询person表\n",
"person_sql ='(select count(MALE) from person where sex = 'MALE' union all select count(FEMALE) from person where sex = 'FEMALEMALE')'\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", "# person_detail=pd.read_sql(sql=person_sql,con=db)\n",
"\n", "\n",
"# 查询apply表\n", "# 查询apply表\n",
"# apply_sql = 'select applicant, status from 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 = pd.read_sql(sql=apply_sql, con=db) \n",
"\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",
"\n", "\n",
"# # 查询call表\n", "# # 查询call表\n",
...@@ -93,22 +494,34 @@ ...@@ -93,22 +494,34 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": 22, "execution_count": 9,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" applicant status\n",
"0 20000035 OVERDUE\n",
"Empty DataFrame\n",
"Columns: [applicant, status]\n",
"Index: []\n"
]
}
],
"source": [ "source": [
"# TODU:获取当前借款人是否有OVERDUE状态的进件(通过sql语句实现)\n", "# TODU:获取当前借款人是否有OVERDUE状态的进件(通过sql语句实现)\n",
"\n", "\n",
"# sql查询用户id为20000035的用户是否有OVERDUE状态的进件\n", "# sql查询用户id为20000035的用户是否有OVERDUE状态的进件\n",
"#sql1 = select applicant,status from apply where applicant =20000035 and status = 'OVERDUE' \n", "sql1 = \"select applicant,status from apply where applicant =20000035 and status = 'OVERDUE'\"\n",
"# status1 = \n", "status1 = pd.read_sql(sql=sql1, con=db)\n",
"# print(stauts1) \n", "print(status1)\n",
"\n", "\n",
"\n", "\n",
"# # sql查询用户id为20000001的用户是否有OVERDUE状态的进件\n", "# # sql查询用户id为20000001的用户是否有OVERDUE状态的进件\n",
"# sql2 = select applicant,status from apply where applicant =20000001 and status = 'OVERDUE'\n", "sql2 = \"select applicant,status from apply where applicant =20000001 and status = 'OVERDUE'\"\n",
"# stauts2 = \n", "stauts2 = pd.read_sql(sql=sql2, con=db)\n",
"# print(stauts2) # 0" "print(stauts2)"
] ]
}, },
{ {
...@@ -124,15 +537,159 @@ ...@@ -124,15 +537,159 @@
}, },
{ {
"cell_type": "code", "cell_type": "code",
"execution_count": null, "execution_count": 35,
"metadata": {}, "metadata": {},
"outputs": [], "outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [ "source": [
"# TODU:查询男、女各占比例,并绘制成饼图\n", "# TODU:查询男、女各占比例,并绘制成饼图\n",
"# 从person_info中获取'FEMALE','MALE'的人数\n", "# 从person_info中获取'FEMALE','MALE'的人数\n",
"value = \n", "Female_value = person_detail[\"F_count\"][0]\n",
"Male_value = person_detail[\"F_count\"][1]\n",
"# 绘制饼图\n", "# 绘制饼图\n",
"plt.pie()\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()" "plt.show()"
] ]
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment