天猫订单地域数据分析
一、背景
天猫订单数据,为2月份的部分数据内容,已脱敏处理。保留数据特征见下表,共计28010条数据。
数据集来自和鲸社区,点击链接即可下载数据集。
订单id | 订单总金额 | 订单实际支付金额 | 收货地址 | 下单时间 | 付款时间 | 退款金额 |
---|---|---|---|---|---|---|
order_id | order_money | pay_money | address | order_ct | p_t | refund |
1.订单实际支付金额 = 订单总金额 - 退款金额
2.若付款时间为NAN,则此订单未支付。未支付订单则退款金额为0。
二、分析目标
- 按区域统计下单数量、订单金额、实付金额、退款金额等
- 计算下单-付款的转化率,以及退款率
- 计算用户下单付款的间隔时间
- 下单数量随日期变化,时间段下单趋势变化
三、数据清洗
1.数据读取
# 导入相关库
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties
%matplotlib inline
# 设置文件路径
path = '/Users/valkyrja/Documents/dataanalysis/taobao/tmall.csv'
# 读取数据
data = pd.read_csv(path, encoding = 'utf8')
# 观察数据
data.head()
7列数据,存在时间和Nan的值,需要观进一步观察数据类型。
# 数据行数
data.shape
# (28010, 7)
# 数据预览
data.info()
- 订单创建时间、订单付款时间均为字符串,需要进行转换
- 订单付款时间存在缺失值,因为存在订单未付款的情况
- 需要对列名进行重命名
# 观察是否存在重复数据
data.duplicated().sum()
# 不存在
2.数据预处理
# 列重命名
data.rename(columns = {
'订单编号':'order_id', '总金额':'order_money','买家实际支付金额':'pay_money', '收货地址':'address',\
'订单创建时间':'order_ct', '订单付款时间':'p_t', '退款金额':'refund'}, inplace = True)
data.head()
列名中可能存在空格,需要进行去空格处理。
data.rename(columns = lambda x : x.replace(' ', ''), inplace = True)
data.rename(columns = {
'收货地址':'address','订单付款时间':'p_t'}, inplace = True)
data.head()
列名完成重命名。
# 转换时间格式
data['order_ct'] = pd.to_datetime(data['order_ct'])
data['p_t'] = pd.to_datetime(data['p_t'])
data.info()
order_ct和p_t都是datetime类型了。