本文对租车服务系统里的用户基础数据进行数据分析。
一、数据说明
二、分析思路
三、数据分析
(一)导入数据
import pandas as pd
from datetime import timedelta
data=pd.read_csv("用户订单基础数据.csv",encoding='gb18030')
#日期转换(由于数据质量较好,只需进行时间字段的转换)
data['order_day']=pd.to_datetime(data['order_day'])
data['book_day']=pd.to_datetime(data['book_day'])
(三)提前预定时间分析
data["days"]=(data['book_day']-data['order_day']).apply(lambda x:x.days)
data_days=data.groupby("days")["trade_order_id"].count()
data_days.plot()
#选取0-20天
axes=data_days.plot()
axes.set_xlim([0,20])
data_days[:3].sum()/data_days.sum()
提前两天之内预定的订单占据所有订单的84.2%。
(四)订单类别分析
#选取2016-2018年的数据
data_1=data[(data['order_day'].dt.year==2016)|(data['order_day'].dt.year==2017)|(data['order_day'].dt.year==2018)]
data_1["weekday"]=data_1['order_day'].dt.weekday
#计算各订单分类的数量
order_order_class_name=data_1.groupby(["order_order_class_name"])["trade_order_id"].count()
order_order_class_name
#绘制订单分类分布图
from pyecharts.charts import Pie
from pyecharts import options as opts
c =(Pie()
.add("",[list(z) for z in zip(order_order_class_name.keys(),order_order_class_name.values.tolist())],radius=["40%","75%"], label_opts=opts.LabelOpts(is_show=True))
.set_global_opts(title_opts=opts.TitleOpts(title="订单分类分布图"),legend_opts=opts.LegendOpts(orient="vertical",pos_top="15%",pos_left="2%"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}% "))
)
c.render_notebook()
"专车-自营-直营"的订单类别占据所有订单的93.9%,"专车-自营-代理"的订单类别仅占据所有订单的0.04%。
- 周期内各订单类别的订单数量分析
data_11=data_1[data_1["order_order_class_name"]=="专车-OTA"].groupby("weekday")["trade_order_id"].count().reset_index()
data_12=data_1[data_1["order_order_class_name"]=="专车-自营-代理"].groupby("weekday")["trade_order_id"].count().reset_index()
data_13=data_1[data_1["order_order_class_name"]=="专车-自营-直营"].groupby("weekday")["trade_order_id"].count().reset_index()
data_14=data_1[data_1["order_order_class_name"]=="出租车-OTA"].groupby("weekday")["trade_order_id"].count().reset_index()
data_order_class=pd.merge(data_11,data_12,on="weekday",how="outer")
data_order_class=pd.merge(data_order_class,data_13,on="weekday",how="outer")
data_order_class=pd.merge(data_order_class,data_14,on="weekday",how="outer")
data_order_class.columns=["weekday","专车-OTA","专车-自营-代理","专车-自营-直营","出租车-OTA"]
data_order_class
from pyecharts.charts import Bar,Line,Grid
from pyecharts import options as opts
from pyecharts.globals import ThemeType
bar=Bar(init_opts=opts.InitOpts(width='900px',height='600px',theme=ThemeType.DARK))
bar.add_xaxis(data_order_class["weekday"].tolist())
bar.add_yaxis("专车-OTA",data_order_class["专车-OTA"].tolist(),stack='stack1')
bar.add_yaxis('专车-自营-直营',data_order_class['专车-自营-直营'].tolist(),stack='stack2')
bar.add_yaxis('出租车-OTA',data_order_class['出租车-OTA'].tolist(),stack='stack3')
bar.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
bar.set_series_opts(markline_opts=opts.MarkLineOpts(
data=[# 设置最大值的标记线
opts.MarkPointItem(type_="max", name="最大值")
]))
bar.render_notebook()
在一周中,订单类别为"专车-自营-直营"的订单在周五,周六,周日比一周中其他日期多,并且在周五是最多的,比一周最少的周二高出了约11.26%。
同样,订单类别为"出租车-OTA"在一周中,周五的订单是最多的,比一周最少的周三高出了约66.7%。
而"专车-OTA"的订单类别在周一的订单是最多的。
- 三年内各月份各订单类别的订单数量分析
data_1["month"]=data_1['order_day'].values.astype('datetime64[M]')
data_11=data_1[data_1["order_order_class_name"]=="专车-OTA"].groupby("month")["trade_order_id"].count().reset_index()
data_12=data_1[data_1["order_order_class_name"]=="专车-自营-代理"].groupby("month")["trade_order_id"].count().reset_index()
data_13=data_1[data_1["order_order_class_name"]=="专车-自营-直营"].groupby("month")["trade_order_id"].count().reset_index()
data_14=data_1[data_1["order_order_class_name"]=="出租车-OTA"].groupby("month")["trade_order_id"].count().reset_index()
data_order_class_month=pd.merge(data_11,data_12,on="month",how="outer")
data_order_class_month=pd.merge(data_order_class_month,data_13,on="month",how="outer")
data_order_class_month=pd.merge(data_order_class_month,data_14,on="month",how="outer")
data_order_class_month.columns=["month","专车-OTA","专车-自营-代理","专车-自营-直营","出租车-OTA"]
data_order_class_month=data_order_class_month.sort_values(by="month").reset_index(drop=True)
data_order_class_month=data_order_class_month.fillna(0)
data_order_class_month
from pyecharts.charts import Line
line=Line(init_opts=opts.InitOpts(width='900px',height='600px',theme=ThemeType.DARK))
line.add_xaxis(data_order_class_month["month"].dt.date.tolist())
line.add_yaxis("专车-OTA",data_order_class_month["专车-OTA"].tolist() ,
# 设置折线是否平滑
is_smooth=True)
line.add_yaxis("专车-自营-直营",data_order_class_month["专车-自营-直营"].tolist() ,
# 设置折线是否平滑
is_smooth=True)
line.add_yaxis("出租车-OTA",data_order_class_month["出租车-OTA"].tolist() ,
# 设置折线是否平滑
is_smooth=True)
# line.set_series_opts(markline_opts=opts.MarkLineOpts(
# # 设置平均值的标记线
# data=[opts.MarkPointItem(type_="average", name="平均值"),
# # 设置最大值的标记线
# opts.MarkPointItem(type_="max", name="最大值")
# ]))
line.set_global_opts(title_opts=opts.TitleOpts(title=""))
line.set_global_opts(xaxis_opts=opts.AxisOpts(axislabel_opts={
"rotate":90}))
line.render_notebook()
横向对比,订单类别为"专车-自营-直营"的订单在这三年期间,每个月份的订单远远高于其他订单类别的订单;纵向对比,在2016年11月份到2017年4月份,订单类别为"专车-自营-直营"的订单数量,猛然激增,达到这三年的最高峰707,而在这之后到2018年6月,跌至三年谷底211。
- 对订单类别为"专车-自营-直营"的订单渠道剖析
data_=data_1[data_1["order_order_class_name"]=="专车-自营-直营"]
data__=data_.groupby("source_type_name")["trade_order_id"].count()
data__
from pyecharts.charts import Pie
from pyecharts import options as opts
c =(Pie()
.add("",[list(z) for z in zip(data__.keys(),data__.values.tolist())],radius=["40%","75%"], label_opts=opts.LabelOpts(is_show=True))
.set_global_opts(title_opts=opts.TitleOpts(title='"专车-自营-直营"订单来源分布图'),legend_opts=opts.LegendOpts(orient="vertical",pos_top="15%",pos_left="2%"))
.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}:{d}% "))
)
c.render_notebook()
订单类别为"专车-自营-直营"的订单渠道有平台渠道和专车渠道,来自平台渠道的订单数量占据所有订单数量的91.17%,来自专车渠道的订单数量占据所有订单数量的8.83%。
data_11=data_[data_["source_type_name"]=="专车"].groupby("month")["trade_order_id"].count().reset_index()
data_12=data_[data_["source_type_name"]=="平台"].groupby("month")["trade_order_id"].count().reset_index()
data_source_type_name=pd.merge(data_11,data_12,on="month",how="outer")
data_source_type_name.columns=["month","专车","平台"]
data_source_type_name=data_source_type_name.sort_values(by="month").reset_index(drop=True)
data_source_type_name=data_source_type_name.fillna(0)
data_source_type_name
line=Line(init_opts=opts.InitOpts(width='900px',height='600px',theme=ThemeType.DARK))
line.add_xaxis(data_source_type_name["month"].dt.date.tolist())
line.add_yaxis("专车",data_source_type_name["专车"].tolist(),
is_smooth=True)
line.add_yaxis("平台",data_source_type_name["平台"].tolist(),
# 设置折线是否平滑
is_smooth=True)
line.set_series_opts(markline_opts=opts.MarkLineOpts(
data=[# 设置最大值的标记线
opts.MarkPointItem(type_="max", name="最大值")
]))
line.set_global_opts(title_opts=opts.TitleOpts(title=""))
line.render_notebook()
渠道剖析可得,订单类别为"专车-自营-直营"订单,在2016年11月份到2017年4月份,其订单数量猛涨,在2017年4月到2018年6月其订单数量又跌至三年的谷底,主要源自于专车渠道,而在2016年5月份之前,平台对于该订单类别的影响力大于专车渠道,但是在2016年5月份之后,专车渠道成为该订单来源的主要渠道。
(五)服务类型分析
service_type_name=data_1.groupby("service_type_name")["trade_order_id"].count()
service_type_name
from pyecharts.charts import Pie
from pyecharts import options as opts
c =(Pie()
.add("",[list(z) for z in zip(service_type_name.keys(),service_type_name