利用python进行零售商品数据分析

您所在的位置:网站首页 房地产1-2月销售数据统计表怎么做的呢 利用python进行零售商品数据分析

利用python进行零售商品数据分析

2024-01-18 23:23| 来源: 网络整理| 查看: 265

零售商品数据分析

文章目录 零售商品数据分析1、数据集描述2、明确分析目的3、理解数据4、数据清洗4、1 缺失数据4、1、1 统计缺失率4、1、2 删除缺失值 4、2 转换数据类型4、3 重复值处理4、4 处理日期型数据4、5 根据需要新建数列 5、数据分析5、1 目标1:找出购买商品数量前十的国家5、2 目标2:找出交易额前十的国家5、3 目标3:公司在哪些月份的销售量比较好5、4 目标4:客单价是多少5、5 目标5:用户行为分析5、6 目标6:基于RFM模型,对用户进行分类5、6、1 再次进行数据清洗5、6、1、1 转换Customer ID的数据类型为str5、6、1、2 处理日期5、6、1、3 新建字段5、6、1、4 重复值处理5、6、1、5 异常值处理 5、6、2 R、F、M5、6、2、1 R5、6、2、2 F5、6、2、3 M 5、6、3 用户分级5、6、4 拼接R、F、M5、6、5 定义分级函数5、6、6 统计用户等级分布情况5、6、7 对结果可视化 5、7 目标7:退货订单分析 6、总结

这篇文章尝试着对一份零售商品数据进行分析,主要手段为描述统计与利用FRM模型进行客户分类,期望通过此次分析能达到如下目的:

1、找出购买商品数量前十的国家2、找出交易额前十的国家3、公司在哪些月份的销售量比较好4、客单价是多少5、用户行为分析6、基于FRM模型,对用户进行分类7、退货订单分析

我会将文中使用到的数据和源代码放在Github上,以便用得到的小朋友们下载:点此访问Github

1、数据集描述

这儿使用到的数据集来自Kaggle,该数据集包含2009-2010及2010-2011两个工作簿,记录了在英国注册的某公司网上零售的交易信息。主要销售产品为礼品。字段如下:

字段描述Invoice订单编号StockCode产品编号Description产品描述Quantity订单商品数量InvoiceDate订单日期与时间Price商品单价Customer ID客户IDCountry客户所在国家/地区 2、明确分析目的 1、找出购买商品数量前十的国家2、找出交易额前十的国家3、公司在哪些月份的销售量比较好4、客单价是多少5、用户行为分析6、基于FRM模型,对用户进行分类7、退货订单分析 3、理解数据 # 导入相关库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import plotly as py import plotly.graph_objects as go import csv import os pyplot = py.offline.plot os.getcwd() os.chdir("F:\DataSets\online_retail") 文中只对表格中的第一个工作簿进行分析(即2009-2010数据集),第二个工作簿分析可类似进行 # 数据读入 online_data = pd.read_excel("online_retail_II.xlsx") # 查看数据情况 online_data.shape (525461, 8) online_data.head()

在这里插入图片描述

online_data.info() online_data.columns RangeIndex: 525461 entries, 0 to 525460 Data columns (total 8 columns): Invoice 525461 non-null object StockCode 525461 non-null object Description 522533 non-null object Quantity 525461 non-null int64 InvoiceDate 525461 non-null datetime64[ns] Price 525461 non-null float64 Customer ID 417534 non-null float64 Country 525461 non-null object dtypes: datetime64[ns](1), float64(2), int64(1), object(4) memory usage: 32.1+ MB Out[3]:Index(['Invoice', 'StockCode', 'Description', 'Quantity', 'InvoiceDate', 'Price', 'Customer ID', 'Country'], dtype='object') 4、数据清洗 4、1 缺失数据 4、1、1 统计缺失率 # 统计缺失率 online_data.apply(lambda x: sum(x.isnull()) / len(x), axis=0) Invoice 0.000000 StockCode 0.000000 Description 0.005572 Quantity 0.000000 InvoiceDate 0.000000 Price 0.000000 Customer ID 0.205395 Country 0.000000 dtype: float64 Description 0.005572 Description存在数据缺失的情况,缺失率约为0.56%,暂时无法进行填充Customer ID 0.205395 Customer ID存在数据缺失,缺失率20.5% 4、1、2 删除缺失值 # 删除缺失值 df1 = online_data.dropna(how="any").copy() df1.info() Int64Index: 417534 entries, 0 to 525460 Data columns (total 8 columns): Invoice 417534 non-null object StockCode 417534 non-null object Description 417534 non-null object Quantity 417534 non-null int64 InvoiceDate 417534 non-null datetime64[ns] Price 417534 non-null float64 Customer ID 417534 non-null float64 Country 417534 non-null object dtypes: datetime64[ns](1), float64(2), int64(1), object(4) memory usage: 28.7+ MB 4、2 转换数据类型 # 转换数据类型 # 转换Customer ID的数据类型为str df1["Customer ID"] = df1["Customer ID"].astype(str) df1.info()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3