Python数据分析实战 —— 天猫订单数据!

本文通过Python分析一个月内的天猫订单数据,包括数据集介绍、数据清洗、描述性分析和建模预处理。发现大部分订单在10分钟内完成支付,部分买家未支付,收货地址集中在沿海地区。模型比较中,SVM和KNN表现出较高的准确性。
摘要由CSDN通过智能技术生成

2、数据集简介

 

本数据集共收集了发生在一个月内的28010条数据,包含以下字段

 

['订单编号', '总金额', '买家实际支付金额', '收货地址', '订单创建时间', '订单付款时间 ', '退款金额']

 

7个字段说明

 

(1)订单编号:订单编号;

(2)总金额:订单总金额;

(3)买家实际支付金额:总金额 - 退款金额(在已付款的情况下)。金额为0(在未付款的情况下);

(4)收货地址:各个省份;

(5)订单创建时间:下单时间;

(6)订单付款时间:付款时间;

(7)退款金额:付款后申请退款的金额。如无付过款,退款金额为0。

 

数据概览:

 

 

 

3、相关库、函数和数据的导入

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
# 相关库和函数的导入
import numpy as npfrom sklearn import metricsimport mathimport copyimport pandas as pd          import scipy as spimport matplotlib.pyplot as plt               # 导入常用的基本库
import datetime as date                                 # 导入datetime库import seaborn as sns                                   # 导入seaborn库,用于数据可视化from IPython.display import display                     # 载入数据查看时需要使用的函数from sklearn.model_selection import train_test_split    # 导入数据集划分时需要使用的函数from sklearn.metrics import confusion_matrix            # 导入生成混淆矩阵的函数from sklearn.preprocessing import LabelEncoder          # 导入分类变量编码时需要使用的函数from sklearn.metrics import classification_report       # 导入分类结果评价时要用到的函数
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis     # 导入LDA判别时需要使用的函数from sklearn.naive_bayes import MultinomialNB           # 导入朴素贝叶斯时需要使用的额函数from sklearn.neighbors import KNeighborsClassifier      # 导入KNN判别时需要使用的函数from sklearn.tree import DecisionTreeClassifier         # 导入决策树函数from sklearn.neural_network import MLPClassifier        # 导入神经网络函数from sklearn import svm                                 # 导入支持向量机函数
from sklearn.model_selection import GridSearchCV        # 导入模型优化方法中的网格搜索法需要用到的函数from sklearn.cross_validation import KFold              # 导入模型评估时使用的函数
# 数据导入
dt = pd.read_csv('D:资料/数据分析/数据分析与数据挖掘/实战演练/5(tmall_order_report)/tmall_order_report.csv',encoding='gbk',engine='python')

 

4、数据检查与清洗

 

首先,查看一下数据集的变量类型:

 

  •  
dt.dtypes                                               # 查看数据集有哪些变量

 

 

然后,将变量中右侧的空格去除(以免影响后续调用变量),并进行重复值和缺失值检查:

 

  •  
  •  
  •  
dt.columns = dt.columns.str.rstrip()                    # 去除列名右侧的空格dt.duplicated().sum()                                   # 检查数据是否有重复值,发现并没有重复值display(sum(dt.isnull().sum()))                         # 检查数据集是否有缺失值

 

 

检查出来有缺失值(约占数据总量的12-15%),考虑原数据中是否是因为“订单付款时间”这一列存在缺失值而导致产生这样的检查结果:

 

  •  
  •  
  •  
col = dt.columns.values.tolist()                        # 提取数据集中的所有列变量的名称col.remove('订单付款时间')                               # 将订单付款时间这一列去除display(sum(dt[col].isnull().sum()))                    # 再次检查是否有缺失值,发现并没有缺失值,也就是缺失值均来自“订单付款时间”这一列

 

 

结果表明,缺失值仅来自“订单付款时间”这一列。接下来就是处理缺失值,处理的思路可以是先计算出各订单付款时间和下单时间的平均值,然后用下单时间 + 平均值,作为缺失值的填补对象:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
c = np.array(['订单创建时间','订单付款时间'])             # 提取订单创建时间、付款时间这两列的列名for i in c:    dt[i] = p
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值