爱彼迎产品分析(Python)
一、项目背景与目的
1 背景
Airbnb是一个旅行房屋租赁社区,用户可通过网络或手机应用程序发布、搜索度假房屋租赁信息并完成在线预定程序,其社区平台在191个国家、65,000个城市为旅行者们提供数以百万计的独特入住选择,被时代周刊称为“住房中的EBay”。
Airbnb在做好了产品体验、房源美感、民宿共享服务之后,这款产品和背后的业务是否存在可以改进的地方?
2 提出问题
一款产品的发展必然伴随着不断的迭代。在AARRR模型中,第一个A(用户获取)中,提高新用户获取的数量和质量是不断监测并优化的一个工作,哪些渠道的效果更好,企业就要及时调整和增加此渠道的投入,哪些渠道的效果很差,就要及时查找原因并给出解决。
另外转化漏斗分析也是数据分析环节的重要指标,可以从宏观角度了解整个产品的业务转化情况,企业针对流失率较高的漏斗环节进行改进,可以有效促进业务发展。
针对分析的目的,提出以下三个问题:
- airbnb的目标用户群体具有什么样的特征?
- airbnb当前的推广渠道有哪些是优质的、有哪些做的还不够好且需要改进?
- 当前的转化率和流失率在哪一个环节存在问题,或者有较大的改进空间?
二、分析维度
1 分析指标
本项目将着重从用户画像、推广渠道、转化漏斗三个方面去进行分析,并探索爱彼迎在产品和业务上还有哪些可以改进的地方。
2 细分指标
2.1 用户画像
- 用户性别分布;
- 用户年龄分布;
- 用户地区分布;
- 国人去国外预定的地区;
2.2 推广渠道
- 每月新增用户;
- 不同用户端注册量;
- 不同推广渠道注册量;
- 不同推广渠道的转化率;
- 不同营销内容注册量;
- 不同营销内容的转化率;
2.3 转化漏斗
- 注册用户占比;
- 活跃用户占比;
- 下单用户占比;
- 实际支付用户占比;
- 复购用户占比;
三、数据概览
1 数据来源及描述
本次项目的数据来源于Kaggle–Airbnb New User Bookings其中train_user表中为用户数据(21w * 15),sessions表中为行为数据。(104w * 6)
2 数据集含义
2.1 train_users表
id:用户ID
date_account_created:帐户创建日期
date_first_booking:首次预订的日期
gender:性别
age:年龄
signup_method:注册方式
signup_flow:用户注册的页面
language:语言偏好
affiliate_channel:营销方式
affiliate_provider:营销来源,例如google,craigslist,其他
first_affiliate_tracked:在注册之前,用户与之交互的第一个营销广告是什么
signup_app:注册来源
first_device_type:注册时设备的类型
first_browser:注册时使用的浏览器名称
country_destination:目的地国家
******************** 基本信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 213451 entries, 0 to 213450
Data columns (total 16 columns):
id 213451 non-null object
date_account_created 213451 non-null object
timestamp_first_active 213451 non-null int64
date_first_booking 88908 non-null object
gender 213451 non-null object
age 125461 non-null float64
signup_method 213451 non-null object
signup_flow 213451 non-null int64
language 213451 non-null object
affiliate_channel 213451 non-null object
affiliate_provider 213451 non-null object
first_affiliate_tracked 207386 non-null object
signup_app 213451 non-null object
first_device_type 213451 non-null object
first_browser 213451 non-null object
country_destination 213451 non-null object
dtypes: float64(1), int64(2), object(13)
memory usage: 26.1+ MB
None
******************** 空值
id 0
date_account_created 0
timestamp_first_active 0
date_first_booking 124543
gender 0
age 87990
signup_method 0
signup_flow 0
language 0
affiliate_channel 0
affiliate_provider 0
first_affiliate_tracked 6065
signup_app 0
first_device_type 0
first_browser 0
country_destination 0
dtype: int64
******************** 重复值
False 213451
dtype: int64
2.2 sessions表
user_id:与users表中的“id”列连接
action:埋点名称
action_type:操作事件的类型
action_detail:操作事件的描述
device_type:此次会话所使用的设备
******************** 基本信息
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10567737 entries, 0 to 10567736
Data columns (total 6 columns):
user_id object
action object
action_type object
action_detail object
device_type object
secs_elapsed float64
dtypes: float64(1), object(5)
memory usage: 483.8+ MB
None
******************** 空值
user_id 34496
action 79626
action_type 1126204
action_detail 1126204
device_type 0
secs_elapsed 136031
dtype: int64
******************** 重复值
False 10315201
True 252536
dtype: int64
3 数据处理
3.1 缺失值及处理
- date_first_booking(首次预定时间)数据如果缺失,在业务上可以理解为此用户为“未预定用户”,也就是没有下单的用户。
- 性别、年龄由于客户端中这部分信息选填,空值为用户未填写。
因为确实的数据并不是小数,如果删除缺失数据会导致数据大量减少,从而影响分析结果,在针对各分析模块采用排除的方法。
3.2 异常值处理
#年龄
bin2000_10 = np.arange(0,2000,10)
df_cut_10 = pd.cut(df.age,bin2000_10).value_counts()
df_cut_10.head()
(30, 40] 44212
(20, 30] 41633
(40, 50] 18831
(50, 60] 9868
(60, 70] 4656
(10, 20] 2412
(100, 110] 1544
(70, 80] 1021
(80, 90] 228
(90, 100] 198
(0, 10] 57
(110, 120] 20
(1930, 1940] 11
(1920, 1930] 9
(1940, 1950] 6
(1950, 1960] 2
(130, 140] 1
(140, 150] 1
(560, 570] 0
(750, 760] 0
可以看到年龄出现了很多异常值,推测注册年龄是可以随意填写的,所以会出现这些异常数据。处理时仅选取10-100岁的数据。
四、各维度分析
数据可视化使用pyecharts,在此,对于常用的可视化脚本就不在贴出了,如果需要可以参考博主之前的几篇文章。
1 用户画像
1.1 年龄分布
df_age = df[(df.age>10)&(df.age<100)].age.value_counts()
df_age_sort = df_age.sort_index()
df_age_sort
bar.render_notebook()
airbnb的用户主要为“中青年群体”,其中用户数量最多的是29岁~33岁,30岁之后随着年龄的增大,用户逐渐减少。
1.2 性别分布
print(df.gender.value_counts())
df_sax = df[(df.gender=='FEMALE')|(df.gender=='MALE')].gender.value_counts()
-unknown- 95688
FEMALE 63041
MALE 54440
OTHER 282
Name: gender, dtype: int64
男性用户较女性用户仅多出7%左右,差别不大。
1.3 地区分布
地区分布使用的是数据中的语言来进行判断的,en代表英语地区,zh为汉语地区等
'''[{'value': 0.9666, 'name': 'en'},{'value': 0.0076, 'name': 'zh'}]'''
from pyecharts.charts import TreeMapdf.language.value_counts()
key = df.language.value_counts().index.tolist()
values = df.language.value_counts().values.tolist()
dict_language = dict(zip(key,values))
aa = []
sum_val = df.language.value_counts().sum()
for key,values in dict_language.items():a = {"value":round(values/sum_val,4),"name":key}aa.append(a)def pie_rosetype():c = (TreeMap(init_opts=opts.InitOpts(width="1000px", height="500px")).add(series_name="option",data=aa,
# visual_min=300,leaf_depth=1,#标签居中为 position = "inside"label_opts=opts.LabelOpts(position="inside"),).set_global_opts(legend_opts=opts.LegendOpts(is_show=False),title_opts=opts.TitleOpts(title="语种分布", subtitle="2020/06", pos_left="leafDepth"),))return c
pie_rosetype().render_notebook()
有超过90%的用户是英语国家,airbnb是2013年开始进入中国市场的(此数据集止于2014年),所以此时中文用户数量虽然排名第二,但是占比却非常小。
1.4 国人常去的国家
df_chn = df[(df.language=='zh')&(df.country_destination!='NDF')]
df_chn.country_destination.value_counts()
中国用户去国外预定,占比最多的是美国。其余国家占比很小,总和不到20%。
2 流量渠道
2.1 每月新增用户
df['date_account_created'] = pd.to_datetime(df['date_account_created'], format='%Y-%m-%d')
df['month'] = df['date_account_created'].dt.strftime('%Y-%m')
df_month = df['month'].value_counts().sort_index()
airbnb的用户增长曲线健康,前期(2011年之前)平缓,2012年2月之后开始快速增长,2012年之后的增长速度很快。此产品新用户的增加存在季节性规律:每年的7~10月,产品都会迎来用户增长的高峰,推测为夏季(北半球)是旅行的旺季,而短租产品本身就是旅行消费的一种。
2.2 不同用户端的注册量
df_device = df[df.first_device_type!="Other/Unknown"]
df_device.first_device_type.value_counts()
此数据为2014年之前的数据,当时智能手机还没有像现在一样普及,用户的注册设备PC大于移动设备。苹果设备数量大于其他设备数量,其次是windows设备。
2.3 不同推广渠道转化
df["channel-provider"] = df["affiliate_channel"].str.cat(df["affiliate_provider"],sep ="-")
#把渠道和推广方式用“-”连接起来。
visit = df.groupby(["channel-provider"])["id"].count()
#访问统计
booking = df.groupby(["channel-provider"])["date_first_booking"].count()
#注册统计
rate = booking/visit
visit= visit.sort_values(ascending=False).reset_index()
booking=booking.sort_values(ascending=False).reset_index()
rate=rate.sort_values(ascending=False).reset_index()
vbr = pd.merge(visit,rate,on='channel-provider',how='left')
vbr = pd.merge(vbr,booking,on='channel-provider',how='left')
vbr.columns = ['channel-provider','visit','rate','booking']
vbr = vbr.sort_values(by='visit',ascending=False)[:10]
airbnb的整体渠道转化率表现很好,多数渠道的转化率都在30%以上。渠道注册量符合二八定律,及前7个渠道(总共有38个渠道推广)的注册量已经占据了产品总的渠道来源的90%以上。
content_google的转化率异常,明显低于转化率的均值。api_other(其他产品的API对接)渠道的转化率虽然大于30%,单数相较于其他渠道,转化率偏低。
seo_google的注册量和转化率表现都很好,sem_brand_google的注册量可转化率表现优异。
2.4 各用户来源转化
visit = df.groupby(["first_affiliate_tracked"])["id"].count()
#注册量
booking = df.groupby(["first_affiliate_tracked"])["date_first_booking"].count()visit = visit.to_frame(name='count(visit)')
booking = booking.to_frame(name='count(booking)')
df_vb = pd.merge(visit,booking,on='first_affiliate_tracked')
df_vb['Proportion']=df_vb["count(booking)"]/df_vb["count(visit)"]
df_vb = df_vb.sort_values('count(visit)',ascending=False)
从统计到的数据来看,linked注册量位居第一。转化率方面,linked和omg两个营销内容的的转化率好,在43%以上。local ops的转化率非常低。
2.5 用户设备类别占比
gp_device_browser = df.groupby(['first_device_type','first_browser'])['id'].count()
gp_device_browser=gp_device_browser.sort_values(ascending=False).reset_index()
# gp_device_browser
gp_device_browser["device_browser"] = df["first_device_type"].str.cat(df["first_browser"],sep ="_")df_device_browser=gp_device_browser[['device_browser','id']][:11]
用户通过chrome浏览器访问的次数最多
3 转化漏斗分析
3.1 转化漏斗
users_sum = df_user.groupby(["user_id"])["user_id"].count()
all_user = users_sum.count()
active_user = users_sum[users_sum>=10].count()
df_merge = pd.merge(df,df_user,left_on="id",right_on="user_id")
signup_user = df_merge.groupby(["user_id"])["user_id"].count().count()
pay_user=df_user[df_user['action_detail']=='payment_instruments'].groupby('user_id').count().shape[0]
pays_user = df_user[df_user['action_detail']=='payment_instruments'].groupby('user_id')['user_id'].count()
pays_user = pays_user[pays_user>=2].count()
注册用户到下单用户是airbnb转化漏斗中流失率最高的一个环节。活跃和复购环节表现的好,其中有60%的下单用户复购,说明airbnb的产品和服务做的非常好。下单用户中有大约13%的用户没有最终支付,需要进一步排查原因。
五、结论
1 用户画像
- 用户性别中,男性用户多于女性用户,但是差别不大(7.3%的差距量)
- 用户年龄以中青年为主,其中用户数量最多的是29岁~33岁,30岁之后随着年龄的增大,用户逐渐减少
- 用户分布地区最多的为欧美地区,其次是中国,但欧美占比达到了90%以上。
- 中国用户预订的最多的其他国家是美国,占比高达90%以上。
- 根据年龄分布特征,建议SEO或者付费广告投放时,投放对象细化至年龄在29~39岁的男性。
2 流量渠道
- 前期(2011年之前)平缓,之后(2012年1月之后)开始快速增长,并且速度很快。
- 7~10月是旅行旺季、此时也是airbnb用户增长的旺季。
- 苹果设备用户居多。
- drict(直接应用市场下载注册)的注册量最多,占总注册量的64.38%。
- 注册量排名7的渠道,占据了产品全部渠道注册来源数量的90%以上。
- 主要渠道中,content_google的转化率异常,明显低于转化率的均值。
- api_other(其他产品的API对接)渠道的转化率也比较低。
- content(内容推广)这一种推广方式下各渠道的转化率都很低,其中content_gsp的转化率只有8.2%。
- sem中sem-non-brand_bing、sem-non-brand_vast两种SEM渠道的转化率都偏低
3 转化漏斗
- airbnb转化漏斗中流失率最高的一个环节是“用户下单”,仅有14%的注册用户下单。
- 下单用户中有大约13%的用户最终没有支付成功。
- 注册率有待提高。
- 活跃和复购环节表现的好,说明airbnb的产品和服务做的非常好。
4 建议
- 7~10月是业务的旺季,建议运营部门在每年的7~10月加大活动营销的力度,同时加大渠道广告的投放力度。
- 在主要渠道(注册量在前7名的渠道)中content_google转化率非常低(只有15%),建议运营部门计算此渠道的*ROI和ARPU(每客户平均收入),如果ROI过低,建议停止此渠道的投放。
- SEO推广下各渠道的拉新和转化都好,SEO作为一种较低成本的获客方式(主要为人力成本),建议企业管理层日常要更加支持SEO相关的资源投入,甚至考虑扩大SEO的团队。
爱彼迎产品分析(Python)相关推荐
- Airbnb(爱彼迎)产品分析报告
Airbnb(爱彼迎)产品分析报告 一.Airbnb背景 Airbnb成立于2008年,一家联系旅游人士和家有空房出租的房主的服务型网站,它可以为用户提供多样的住宿信息.用户可通过网络或手机应用程序发 ...
- python requests+json爬取ajax加载 爱彼迎深圳所有房源
目的: 爬取爱彼迎深圳所有房源的房主,价格,房源介绍等信息 步骤如下: step1:获取房源页面url 登陆爱彼迎网站,搜索深圳房源 https://zh.airbnb.com/s/homes?ref ...
- airbnb爱彼迎python爬虫与简单分析
目的 作为一个挂了几套公寓在airbnb上的小房东,又作为一个喜欢分析数据的小孩子,当学习爬虫的过程中当然要选择爱彼迎这个网站来试手:在网上看到一个大神po的一长串的代码,用了之后的确可以马上爬取,但 ...
- 五十三、爱彼迎数据集分析建模
爱彼迎数据集分析建模为本专栏的Python数据分析案例. 因为文件比较大,所以保存了百度云 链接:https://pan.baidu.com/s/1geUgsLejvpTKgBmcSMSIdQ 提取码 ...
- 罗永浩回应被叫行业冥灯:完全不能同意;联想一员工侵占公司工时费近1000万;爱彼迎CEO:办公室时代已过去 | EA周报...
EA周报 2022年5月13日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 周报看点 1.联想一员工内外勾结,侵占公司工时费近1000万 2.钉钉被曝裁员30%,相 ...
- 与谷歌、Facebook 抢夺 AI 人才和公司资源,爱彼迎加入 AI 战场
爱彼迎是一家C2C的旅游住宿共享平台,但是它最近也开始与Facebook这样的科技公司抢夺AI领域的人才了.爱彼迎作为旅游住宿平台的业务不断扩大,自然需要再技术层面,尤其是AI技术层面上"招 ...
- 爱彼迎数据采集与预处理-图片色彩分析
1 数据收集 爱彼迎的数据主要通过数据集和爬虫采集. 方法一:登录Inside Airbnb: Get the Data网站,下载需要的城市数据. 注:这个网址更新速度与周期不定,且更新后,上次的数据 ...
- Airbnb(爱彼迎)用户数据分析——tableau可视化和MySQL分析
本文利用Airbnb用户的注册.订单和日志行为等数据,从用户画像.营销渠道转化率.订单漏斗分析三方面进行分析.我们需要考虑以下3个问题: 爱彼迎的目标用户是什么样的人群?有什么特点? 这些人群接受信息 ...
- 爱彼迎数据分析报告(修改)
效果展示 (修改:使用pyecharts重新画图,并生成html进行展示) 代码链接:https://github.com/guotianyi960531/Airbnb- 1.简介 1.1 原始数据来 ...
最新文章
- 《3D数学基础》1.8 混合积
- 怎么同步github上的原项目和fork
- Spring使用总结
- ACM入门之【高精度】
- windows mklink创建软连接命令使用示例
- maven中snapshot快照库与maven-metadata.xml
- jpa加密_使用JPA侦听器的数据库加密
- Postman接口压力测试
- 2016HUAS暑假集训训练题 F - 简单计算器
- nyoj244 16进制的简单运算
- uni-app 基于 Promise 的 request 请求封装
- 数据结构期末考试【含答案】
- aforge java_java(一些java API)或C#(emgucv,dshownet,Aforge.NET)中的实时对象跟踪
- 计算机重装操作系统的软件,重装系统后的装机必备软件电脑推荐
- 材料科学需要用计算机吗,计算机在材料科学中的运用分析
- Kubernetes核心概念总结
- 相对开音节java_相对开音节是什么
- [Java基础]-- Jsp 介绍
- 中国电子商务网经的盈利策略
- List和IList的区别
热门文章
- mysql存储过程与函数、触发器、游标、变量等知识点详解
- 用Qt编写简单的浏览器 (一)
- iphone x php兼容吗,iPhone X/8/8P 都支持什么网络?别买错了
- (swing读书笔记)JTable简介(中)
- java tika 解析pdf_Tika解析word文件
- JavaScript在HTML中使用
- 别告诉我你连线程池都不会用~ 一文搞懂线程池
- 阿里巴巴前端工程师一面二面三面终面面经总结
- WEB阶段3:Response响应组成常见状态码ServletContexturl编码文件下载案例
- IDEA下,Ctrl+Alt+方向键快捷键冲突,导致屏幕翻转