DC's blog DC's blog
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)

DC

愿我一生欢喜,不为世俗所及.
首页
  • 计算机基础
  • linux基础
  • mysql
  • git
  • 数据结构与算法
  • axure
  • english
  • docker
  • opp
  • oop
  • 网络并发编程
  • 不基础的py基础
  • 设计模式
  • html
  • css
  • javascript
  • jquery
  • UI
  • 第一次学vue
  • 第二次学vue
  • Django
  • drf
  • drf_re
  • 温故知新
  • flask
  • 前后端不分离

    • BBS
    • 订单系统
    • CRM
  • 前后端部分分离

    • pear-admin-flask
    • pear-admin-django
  • 前后端分离

    • 供应链系统
  • 理论基础
  • py数据分析包
  • 机器学习
  • 深度学习
  • 华中科大的网课
  • cursor
  • deepseek
  • 杂文
  • 罗老师语录
  • 关于我

    • me
  • 分类
  • 归档
GitHub (opens new window)
  • 理论基础

  • Py数据分析包

    • numpy
    • pandas基本操作
    • pandas数据清洗
    • pandas数据集成
    • pandas高级操作
    • pandas时间序列
    • pandas样式制定
    • pandas绘图
    • 商场销售数据分析
    • 美妆数据分析
    • 连锁超市数据分析
    • 财务经营分析
    • 拍拍贷数据分析
      • 准备工作
      • 加载数据
        • pymysql
        • sqlalchemy
      • 数据分析
    • ★一切从简
    • 一些杂乱的思考
  • 机器学习

  • 深度学习

  • 华中科大的网课

  • AI
  • Py数据分析包
DC
2024-09-12
目录

拍拍贷数据分析

该项目数据集链接 - https://pan.baidu.com/s/15ZLLTc3gC8N3xTarShKm2g?pwd=k8vf

本文对拍拍贷 从2015年1月1日到2017年1月30日, 共328553条 《贷款到期用户》的数据进行分析.
分析得出逾期用户的特征, 及公司核心业务标的, 达到降低业务逾期风险, 增加业务收入的目的.
分析目的: 降低用户的逾期率和逾期金额

# 准备工作

启动mysql服务

- source ~/.zhsrc
- mysqlstart       (执行命令mysqlstop停止)  >> 需要输入的是电脑用户的密码!!
- mysql -uroot -p  (初使密码 admin1234)
1
2
3

打开Navicat Premium, 新建链接 - 创建数据库 - 导入sql文件

image-20240912110816345

安装pymysql库, pip install pymysql

(AI) dengchuan@MacBook-Air ~ % pip list|grep PyMySQL
PyMySQL                    1.1.1
1
2

安装sqlalchemy库, pip install 'sqlalchemy<2.0'

注意: jupyter里用pymysql会被警告,根据提示使用sqlalchemy.
     默认安装的sqlalchemy的版本是2.0以上的, 读取数据时会报错.. 需要将版本降到2.0以下
1
2

# 加载数据

数据集共有328553行, 分为21个字段.

image-20240912120920430

序号: 列表序号,为列表的唯一键(贷款到期用户的唯一标识) 
借款金额: 列表成交总金额
借款期限: 总的期数(按月计)
借款利率:  年化利率(百分数)
借款成功日期: 列表成交的日期。都在2015年1月1日以后
初始评级: 列表成交时的信用评级。AAA为安全标,AA为赔标,A-F为信用等级
借款类型: 分为应收安全标,电商,APP闪电,普通和其他
是否首标: 该标是否为借款人首标
年龄: 借款人在该列表借款成功时的年龄
性别: 该列表借款人性别
手机认证: 该列表借款人手机实名认证是否成功
户口认证: 该列表借款人户口认证是否成功
视频认证: 该列表借款人视频认证是否成功
学历认证: 该列表借款人学历认证是否成功。成功则表示有大专及以上学历
征信认证: 该列表借款人征信认证是否成功。成功则表示有人行征信报告
淘宝认证: 该列表借款人淘宝认证是否成功,成功则表示为淘宝店主
历史成功借款次数: 借款人在该列表成交之前的借款成功次数
历史成功借款金额: 借款人在该列表成交之前的借款成功金额
总待还本金: 借款人在该列表成交之前待还本金金额
历史正常还款期数: 借款人在该列表成交之前的按期还款期数
历史逾期还款期数: 借款人在该列表成交之前的逾期还款期数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# pymysql

import pymysql
import pandas as pd


conn = pymysql.Connect(
    host = '127.0.0.1',      # 连接数据库的主机地址
    port = 3306,             # mysql端口号
    user = 'root',           # mysql的用户名
    password = 'admin1234',  # mysql密码
    db = 'test',             # 连接的数据仓库的名字
)
sql = 'select * from LC'
df = pd.read_sql(sql,conn)
df
1
2
3
4
5
6
7
8
9
10
11
12
13
14

# sqlalchemy

from sqlalchemy import create_engine
import pandas as pd

MYSQL_USER = 'root'
MYSQL_PASSWORD = 'admin1234'
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = '3306'
MYSQL_DB = 'test'

# mysql+pymysql://用户名:密码@IP:Port/dbName?charset=UTF8MB4
# conn = create_engine('mysql+pymysql://root:[email protected]:3306/test?charset=UTF8MB4')
url = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DB}?charset=utf8MB4"
conn = create_engine(url)
                     
sql = 'select * from LC'
df = pd.read_sql(sql, conn)
df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

# 数据分析

■ 逾期率是指贷款到期的用户里面未还款用户的占比,df中的每一条数据都是贷款到期的数据!! - 平均逾期率

res = (df['历史逾期还款期数'] > 0).sum() / df.shape[0]
res = format(res,'.2%')
res  # '15.33%'
1
2
3

■ 计算出不同年龄段的总用户数量、未还款用户数、逾期率和逾期期数总计.

image-20240912124443023

结论:
-1- 产品主要用户年龄分布在17-35岁之间, 其中25-35岁用户群体基数最庞大..
-2- 17-25岁的用户的逾期低于平均值, 其他年龄段的用户逾期率高与平均值, 且随着年龄的增大, 逾期率风险也越高.
因此建议将获客目标放在17-25岁的年轻用户群体, 适当降低该用户群体的准入门槛.
同时对高年龄段的用户在审核和推广方面更加严谨.

■ 计算出不同性别的总用户数量、未还款用户数、逾期率和逾期期数总计. 同上

image-20240912125854946

结论:
男性用户数约为女性用户数的2倍, 女性逾期率比男性逾期率高了2%.
说明男性还款意识高一点, 因此可以拓展男性用户为主要获客目标..

■ 计算出不同初始等级的总用户数量、未还款用户数、逾期率和总历史成功借款金额.

image-20240912134224986

结论:
借款金额主要集中C等级上, 但C逾期率为18%, 高于平均值.
而D等级借款金额仅低于C等级, 但D等级用户的逾期率低于平均值, 建议贷款金额方面向D等级倾斜.
随着等级的下降, 逾期率也相应上升(除D评级逾期率较C有所下降) ,建议加强对风险的把控。


有点懒,剩下的就不弄了.. emmm. 阐述下思维.

剩下的 >>
1. 针对用户认证类型,分别对 '手机认证', '户口认证', '视频认证', '学历认证', '征信认证', '淘宝认证' 进行groupby
   利用apply算出每个分组的总用户数、未还款用户数、逾期率、平均单笔金额、总历史借款金额、总历史逾期还款期数
   <技术要点跟前面的一样一样的>
2. 针对区间
   分别对 "不同借款区间"、"不同借款期限"、"不同区间的借款利率"等 进行分析.
   -1- 首先根据区间,用map作映射,给df添加一列
   -2- 对映射出的这一列作groupby,往后的分析就跟前面的一样了.
1
2
3
4
5
6
7
8

财务经营分析
★一切从简

← 财务经营分析 ★一切从简→

最近更新
01
deepseek本地部署+知识库
02-17
02
实操-微信小程序
02-14
03
教学-cursor深度探讨
02-13
更多文章>
Theme by Vdoing | Copyright © 2023-2025 DC | One Piece
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式