订单数据作为电商数据分析中的基础分析项目,本项目就京东的订单数据进行分析。通过数据分析和可视化深挖数据产生的原因,掌握基础的数据分析能力。
1.关于本项目
1.1数据来源【电商API数据采集接口】
本次数据来源于京东2020年5月25日 大家电-冰箱的订单数据 按照10%的随机抽样后进行数据脱敏最后得到的订单数据,共有订单数据大约70K,数据来源于公开网络数据。
1.2数据所包含信息
订单中的属性将其分成了3类,分别是用户属性、订单属性以及商品属性
2.数据预处理
本项目使用python对数据进行处理 使用plotly进行数据可视化
import pandas as pd
import numpy as np
import plotly_express as px
import plotly.offline as of
import plotly as py
import plotly.graph_objs as go
读取提供的数据
df=pd.read_csv('data.csv',sep='\t', encoding="utf-8", dtype=str)
查看数据的缺失值
df.isnull().sum().sort_values(ascending=False)
user_site_city_id 38190
user_site_province_id 38033
check_account_tm 23271
通过观察发现,这3个数据有部分缺失值,其中user_site_city_id 用户所在城市编号,user_site_province_id 用户所在省份的编号,check_account_tm支付时间
这部分数据的缺失是因为用户填写个人资料时跳过的部分,当然这不影响我们整个数据的分析
我们首先是将数据的类型进行转换 同时处理缺失值和异常值
-
值得注意的是,通过观察我们发现冰箱最低的价格是288元,但是数据中发现了很多低于288元的订单数据,我们认为这部分数据不能真实代表冰箱实际的订单数据,可能出现了补差价或者补运费的情况,因此这样的数据我们都过滤掉。
-
因为订单的编号具有唯一性,因此对于订单编号的重复数据,我们认为出现了重复订单
-
对于缺失的省份值和缺失的数据,我们将空白地方进行填充
-
通过观察,我们发现数据的列有重复,对于删除重复的列,这里提供一个比较有意思的做法,将数据反转后,删除重复的行再反转回来。
-
实际支付的价格=商品数量*优惠后的单价
#删除优惠前价格小于288元的
df = df[df['before_prefr_unit_price' ]>= 288]
#订单编号具有唯一性,因此