数据分析项目-金融行业案例

数据分析项目-金融行业案例学习总结
使用工具:Anaconda-jupyter、mysql数据库
老师指路->https://www.jianshu.com/u/1f32f227da5f

本文涉及:
用户行为路径分析
单变量分析
群组分析

用户行为路径分析

它适用于对产品运营中的关键环节进行分析、监控,找到其中薄弱的环节,通过用户引导或者产品迭代来优化,提升转化效果。

用户行为路径漏斗转化

案例分析:

1、读取数据

flow平台流量表情况

check贷款审核表情况

2、计算每日申请贷款人数、审批贷款人数、放贷率

#选取子集,将新用户和老用户分开统计每天申请贷款人数和审批放贷人数,
#然后计算新用户放贷率。
#最后使用merge函数将新用户结果表和老用户结果表拼接。

dt_check_1 = dt_check[dt_check["是否新用户(1为是,0为否)"] == 1]
dt_check_0 = dt_check[dt_check["是否新用户(1为是,0为否)"] == 0]

#对新用户数据透视计算放贷率
pt_1 = pd.pivot_table(data=dt_check_1, index=["申请日期"], values=["是否放贷"], aggfunc=[np.sum,'count'])
pt_1.columns = pt_1.columns.droplevel(0)
pt_1.columns = ["新用户放贷数","新用户申请数"]
pt_1["新用户放贷率"] = pt_1["新用户放贷数"] / pt_1["新用户申请数"]
pt_1 = pt_1.reset_index()
pt_1.head()
新用户放贷率

同时对老用户计算放贷率得到:


老用户放贷率

这里需要计算老用户复借率,所以需要知道每天的老用户数目,这里做简单化处理

这里的老用户定义是:前一天的放款的新用户第二天继续借款
对存量老用户暂时不考虑,前一天贷款的人第二天是否还继续贷款,贷款的就认为是老用户复借

取新用户放贷透视表的前29天数据+4月30日的人(分析5月1日-5月30日的复借率)构成老客户数量,看这些客户是否还继续贷款

old = [pt_1["新用户放贷数"]]
old = list(pt_1["新用户放贷数"])[0:29]

# 假设4月30日有24个人
old.insert(0,24)
data={'申请日期':list(pt_1["申请日期"]),'老客户数':old} 
dt_old = pd.DataFrame(data)
pt_0_m = pd.merge(pt_0, dt_old, how='left', on=["申请日期"])

pt_0_m["老客户复借率"] = pt_0_m["老用户申请数"] / pt_0_m["老客户数"]

pt_0_m.head()
老客户复借率

3、计算各节点路径转化率并绘图

# pd.merge连接平台流量表,组成一张用户路径总表,计算各节点转化率。

dt = pd.merge(dt_flow, pt_1, how='left', on=None, left_on="日期", right_on="申请日期" )
dt_1 = pd.merge(dt, pt_0_m, how='left', on=None, left_on="日期", right_on="申请日期" )
dt_1 = dt_1.drop(['申请日期'], axis=1)
dt_2=dt_1.drop(['日期'],axis=1)
dt_2.head()
组合表
#汇总求和
dt_2.loc['Row_sum'] = dt_2.apply(lambda x: x.sum())

#各指标所有行值求和
dt_3=dt_2[dt_2.index=="Row_sum"][["PV","UV","注册数","激活数","新用户申请数","新用户放贷数"]]
#设置index,只取出需要的6列数据

dt_3_s=pd.DataFrame(dt_3.stack()).reset_index().iloc[:,[1,2]]
#行转列,重置索引,得到1、2列的数据

dt_3_s.columns = ["指标","汇总"]
#字段起名字
dt_3_s
分析结果

绘图结果:


绘图

单变量分析

单变量分析的主要目的是筛选出好坏区分度较好的变量以便制定策略。在消金公司的日常工作中,会有专门负责爬取变量和计算加工变量数据的团队,他们在不断的去获取加工很多可能对风险控制有帮助的数据提供给风控团队,而风控人员就需要从这成千上万个变量中探查出能够控制逾期风险但同时又不会误拒很多好客户的变量。

针对每个变量单独分析,查看其对逾期的影响。

群组分析

什么是群组分析:
用户在产品使用中都有一个用户行为流程,不同时期的用户表现情况可能不一样,群组分析的主要目的是分析相似群体随时间的变化,核心就是对比、分析不同时间群组的用户,在相同周期下的行为差异, 所以也称同期群分析。


群组分析

读取数据

数据
# 生成一个新字段,用户订单月份
df["orderperiod"] = df.orderdate.apply(lambda x:x.strftime("%Y-%m"))
# 设置userid为索引
df.set_index("userid",inplace=True)

# 这里的level=0表示第一层索引即userid,并且每次分组之后都会形成很多个dataframe
# 按照每个用户的订单的最早时期,生成用户群组
df["cohortgroup"]=df.groupby(level=0)["orderdate"].min().apply(lambda x:x.strftime("%Y-%m"))
df.reset_index(inplace=True)
df.head()
#orderperiod 为orderdate 提出年月后的信息
#cohortgroup 为用户最早的消费年月
最早消费年月
# 根据用户群组和月份字段进行分组
grouped = df.groupby(["cohortgroup","orderperiod"])
# 求每个用户群下每一个月份的用户数量、订单数量、购买金额
cohorts = grouped.agg({"userid":pd.Series.nunique,
                      "orderid":pd.Series.nunique,
                      "totalcharges":np.sum})
# 重命名
cohorts.rename(columns={"userid":"totalusers",
                       "orderid":"totalorders"},inplace=True)
cohorts.head()
#09年1月,它之后的几个月变化情况 01 02 03 04 05 
#09年2月,他之后的几个月变化情况 02 03  04 05 
首消费月分组

把每个群组继续购买的日期字段进行改变
给首次购买日期进行编号,第二次购买为2,第三次购买为3

日期编号

得到每个群组的用户量
重新设置索引

群组用户量

将每个月最早用户数提取出来,用作留存率分母:

分母

计算每个群组的留存
只保留totalusers这一列,转为行
09-1 这一列 用户数为20 10 8 4
09-02 这一列用户数 为 28 5 4
然后计算留存率=各月用户留存数/初始月用户数


留存率
折线图展示
热力图展示
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342