数据分析:消费者数据分析

news2024/11/15 23:44:14

数据分析:消费者数据分析

作者:AOAIYI
创作不易,如果觉得文章不错或能帮助到你学习,记得点赞收藏评论一下哦

文章目录

  • 数据分析:消费者数据分析
  • 一、前言
  • 二、数据准备
  • 三、数据预处理
  • 四、个体消费者分析
  • 五、用户消费行为
  • 总结

一、前言

随着互联网在经济活动中的广泛运用,人们对网络的依赖越来越强烈,网络正在不知不觉中改变着当今社会的生活状态和生活方式。电子商务的兴起,开创了全球性的商务革命和经营革命,并逐步成为一种极重要的商务方式。中国互联网信息中心的第15次中国互联网络发展状况统计显示,2004年庞大的网上用户群中,选择网上购物的人数仅占0.1%。这一方面反映了我国消费者网上购物仍有巨大的潜在市场;另一方面也表明我国网络营销还处于不成熟阶段。对企业而言,网上购物能提供增加收入的机会和吸引顾客的新手段,并能促进与原有顾客的关系。同传统营销一样,网络营销需要了解消费者行为,对消费者网上购买动机进行分析有利于企业针对性地开展市场营销活动。(数据来源于网络)

从本质上讲,消费者是由一个希望满足他们需求的欲望而驱动的。被人们感觉到的需求能够分为两大类:实用主义的需求,引导消费者去考虑目的,产品的功能属性;享乐的或经验的需求,引导消费者去考虑主观方面,产品的舒适性,美学等。在一个购买决定中,两类需求都被考虑是很普遍的。比如,一个消费者也许为了实用目的,驾车上下班,而去购买一辆车,但同时考虑到享乐目的,享受驾驶,最终会选择一辆跑车。当消费者存在未被满足的需求时,通常会产生一股力量,即动力——使一个人对需求做出反应的力量,它来自内部刺激,是由愿望状态到实际状态的趋势所引起的。有了力量,人们再通过恰当行动的学习,最终导致一种动机或一系列动机的发展。消费者期望基于动机上的行动能够产生结果,这就形成一个目标,最终导致一个能够完成此目标的行动。

二、数据准备

1.导入所需要用到的模块

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime
%matplotlib inline
plt.style.use('ggplot')  #更改绘图风格,R语言绘图库的风格
plt.rcParams['font.sans-serif'] = ['SimHei']

2.导入数据。
user_id:用户ID,order_dt:购买日期,order_products:购买产品数量,order_amount:购买金额。

数据时间:1997年1月~1998年6月用户行为数据,约6万条。

columns = ['user_id','order_dt','order_products','order_amount']
df = pd.read_table(r"C:\Users\XWJ\Desktop\CDNOW_master.txt",names=columns,sep='\s+') 
df.head()

注意:sep=‘\s+’:匹配任意个空格
在这里插入图片描述
为了方便后面对数据的处理方便,需要将日期格式需要转换,同时有数据得出,存在同一个用户一天内购买多次行为。

3.使用describe()函数,计算数据集中每列的总数、均值、标准差、最小值、25%、50%、75%分位数以及最大值。

df.describe()

在这里插入图片描述

用户平均每笔订单购买2.4个商品,标准差2.3,稍微有点波动,属于正常。然而75%分位数的时候,说明绝大多数订单的购买量都不多,围绕在2~3个产品左右;
购买金额,反映出大部分订单消费金额集中在中小额,30~45左右

4.使用函数info():数据表的基本信息(维度,列名称,数据格式,所占空间等)

df.info()

在这里插入图片描述

三、数据预处理

1.数据处理

df['order_date'] = pd.to_datetime(df['order_dt'],format='%Y%m%d')

df['month'] = df['order_date'].astype('datetime64[M]')  #[M] :控制转换后的精度
df.head()
  • format参数:按照指定的格式去匹配要转换的数据列。
  • %Y:四位的年份1994 %m:两位月份05 %d:两位月份31
  • %y:两位年份94 %h:两位小时09 %M:两位分钟15 %s:两位秒
  • 将order_date转化成精度为月份的数据列
  • [M] :控制转换后的精度

在这里插入图片描述

2.用户整体消费趋势分析,按月份统计产品购买数量,消费金额,消费次数,消费人数。

plt.figure(figsize=(20,15)) #单位时英寸
# 每月的产品购买数量
plt.subplot(221)  #两行两列,占据第一个位置
df.groupby(by='month')['order_products'].sum().plot()  #默认折线图
plt.title('每月的产品购买数量')
# 每月的消费金额
plt.subplot(222)  #两行两列
df.groupby(by='month')['order_amount'].sum().plot()  #默认折线图
plt.title('每月的消费金额')
# 每月的消费次数
plt.subplot(223)  #两行两列
df.groupby(by='month')['user_id'].count().plot()  #默认折线图
plt.title('每月的消费次数')
# 每月的消费人数(根据user_id进行去重统计,再计算个数)
plt.subplot(224)  #两行两列
df.groupby(by='month')['user_id'].apply(lambda x:len(x.drop_duplicates())).plot()  #默认折线图
plt.title('每月的消费人数')

在这里插入图片描述

分析结果:
图一可以看出,前三个月销量非常高,而以后销量较为稳定,并且稍微呈现下降趋势。

图二可以看出,依然前三个月消费金额较高,与消费数量成正比例关系,三月份过后下降严重,并呈现下降趋势,思考原因?:跟月份有关,
在我国来1,2,3月份处于春节前后。2.公司在1,2,3,月份的时候是否加大了促销力度。

图三可以看出,前三个月订单数在10000左右,后续月份的平均消费单数在2500左右。

图四可以看出,前三个月消费人数在8000~10000左右,后续平均消费消费在2000不到的样子。

总结:所有数据显示,97年前三月消费事态异常,后续趋于常态化。

四、个体消费者分析

1.用户消费金额,消费次数(产品数量)描述统计。

user_grouped = df.groupby(by='user_id').sum()
print(user_grouped.describe())
print('用户数量:',len(user_grouped))

在这里插入图片描述

从用户的角度:用户数量23570个,每个用户平均购买7个CD,但是中位数只有3,并且最大购买量为1033,平均值大于中位数,属于典型的右偏分布(替购买量<7的用户背锅)。

从消费金额角度:平均用户消费106,中位数43,并且存在土豪用户13990,结合分位数和最大值来看,平均数与75%分位数几乎相等,属于典型的右偏分布,说明存在小部分用户(后面的25%)高额消费(这些用户需要给消费金额<106的用户背锅,只有这样才能使平均数维持在106)。

绘制每个用户的产品的购买量与消费金额散点图。

df.plot(kind='scatter',x='order_products',y='order_amount')

在这里插入图片描述

从图中可知,用户的消费金额与购买量呈现线性趋势,每个商品均价15左右,
订单的极值点比较少(消费金额>1000,或者购买量大于60),对于样本来说影响不大,可以忽略不记。

2.用户消费分布图。

plt.figure(figsize=(12,4)) 
plt.subplot(121)
plt.xlabel('每个订单的消费金额')
df['order_amount'].plot(kind='hist',bins=50)  #bins:区间分数,影响柱子的宽度,值越大柱子越细。宽度=(列最大值-最小值)/bins
#消费金额在100以内的订单占据了绝大多数

plt.subplot(122)
plt.xlabel('每个uid购买的数量')
df.groupby(by='user_id')['order_products'].sum().plot(kind='hist',bins=50)

在这里插入图片描述

图二可知,每个用户购买数量非常小,集中在50以内。
两幅图得知,我们的用户主要是消费金额低,并且购买小于50的用户人数占据大多数(在电商领域是非常正常的现象)。

3.用户累计消费金额占比分析(用户的贡献度)。

进行用户分组,取出消费金额,进行求和,排序,重置索引

user_cumsum = df.groupby(by='user_id')['order_amount'].sum().sort_values().reset_index()
user_cumsum

在这里插入图片描述

每个用户消费金额累加

user_cumsum['amount_cumsum'] = user_cumsum['order_amount'].cumsum()
user_cumsum.tail()

在这里插入图片描述

用户的总贡献率

amount_total = user_cumsum['amount_cumsum'].max() #消费金额总值
user_cumsum['prop'] = user_cumsum.apply(lambda x:x['amount_cumsum']/amount_total,axis=1)
user_cumsum.tail()

在这里插入图片描述

可视化

user_cumsum['prop'].plot()

在这里插入图片描述

由图分析可知,前20000名用户贡献总金额的40%,剩余3500名用户贡献了60%。

五、用户消费行为

1.首次购买的时间

df.groupby(by='user_id')['order_date'].min().value_counts().plot()

在这里插入图片描述

2.最后一次购买时间。

df.groupby(by='user_id')['order_date'].max().value_counts().plot()

在这里插入图片描述

大多数用户最后一次购买时间集中在前3个月,说明缺少忠诚用户。
随着时间的推移,最后一次购买商品的用户量呈现上升趋势,猜测:这份数据选择是的前三个月消费的用户在后面18个月的跟踪记录。

总结

人生很短,不要看轻自己,努力一些;人生不公,不要折磨自己,看淡一些;人生的谷底,变成我重建人生的坚实基石。所以不要畏惧失败;只要活着就必然要面对失败,除非你小心翼翼到仿佛一生都没有活过。如果这样,你的失败将来自于放弃生活。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/351747.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【CMake】CMake构建C++代码(一)

在Linux开发过程中&#xff0c;难免会用到CMake来构建你的代码。本文将说明如何构建自己的代码&#xff0c;将自己的代码变为共享库&#xff0c;共其他代码使用。 文章目录在Linux开发过程中&#xff0c;难免会用到CMake来构建你的代码。本文将说明如何构建自己的代码&#xff…

R语言Ternary包绘制三元图、RGB三色空间分布图的方法

本文介绍基于R语言中的Ternary包&#xff0c;绘制三元图&#xff08;Ternary Plot&#xff09;的详细方法&#xff1b;其中&#xff0c;我们就以RGB三色分布图为例来具体介绍。 三元图可以从三个不同的角度反应数据的特征&#xff0c;因此在很多领域都得以广泛应用&#xff1b;…

2023美赛F题思路数据代码分享

文章目录赛题思路2023年美国大学生数学建模竞赛选题&论文一、关于选题二、关于论文格式三、关于论文提交四、论文提交流程注意不要手滑美赛F题思路数据代码【最新】赛题思路 (赛题出来以后第一时间在CSDN分享) 最新进度在文章最下方卡片&#xff0c;加入获取一手资源 202…

MySQL 索引 (只要能看完)(一篇就够了)

文章目录前言一、MySQL索引介绍1.1 索引的类别1.2 索引的创建原则二、索引的管理和使用2.1 制造实验数据2.2 explain 使用说明2.3 创建索引2.3.1 基于创建表时建立索引2.3.2 基于已创建好的表创建索引2.4 删除索引2.5 聚集索引和二级索引2.5.1 聚集索引2.5.2 二级索引&#xff…

【python知识】win10下如何用python将网页转成pdf文件

一、说明 本篇记录一个自己享用的简单工具。在大量阅读网上文章中&#xff0c;常常遇到一个专题对应多篇文章&#xff0c;用浏览器的收藏根本不够。能否见到一篇文章具有搜藏价值&#xff0c;就转到线下&#xff0c;以备日后慢慢消化吸收。这里终于找到一个办法&#xff0c;将在…

【IIC子系统之读取温湿度】

IIC子系统之读取温湿度IIC总线协议主机读取一个字节主机发送一个字节设备树编写IIC设备驱动层API编写程序读取温湿度应用层驱动读取温湿度函数解析头文件IIC总线协议 1.I2C总线是PHLIPS公司在八十年代初推出的一种串行的半双工同步总线&#xff0c;主要用于连接整体电路。 1&a…

面试准备知识点与总结——(基础篇)

目录Java基础Java面向对象有哪些特征ArrayList和LinkedList有什么区别高并发的集合有哪些问题迭代器的fail-fast和fail-safeArrayList底层扩容机制HashMap面试合集解答设计模式单例设计模式哪些地方体现了单例模式Java基础 Java面向对象有哪些特征 Java面向对象有三大特征&am…

Win10显示dds及tga缩略图

整理之前做游戏MOD时收集的模型资源,3D游戏模型的贴图文件格式基本都是dds或tga的,毕竟无损压缩、支持嵌入MipMap、带透明通道、可以被GPU硬解balabala...道理我都懂但这俩玩意系统根本直接查看不了,就算装上专门的看图软件或插件,文件夹视图下也没有缩略图预览,只能一个个点开…

SQL查询的优化:如何调整SQL查询的性能

查询优化是在合理利用系统资源和性能指标的基础上&#xff0c;定义最有效、最优化的方式和技术&#xff0c;以提高查询性能的过程。查询调整的目的是找到一种方法来减少查询的响应时间&#xff0c;防止资源的过度消耗&#xff0c;并识别不良的查询性能。 在查询优化的背景下&a…

CF1795D Triangle Coloring (组合数学)

链接 题意&#xff1a; 给定一个 n 个点 n 条边的图 &#xff0c;n 为 6 的倍数&#xff0c;每条边都有边权。 这个图是由 n/3 个三元环构成的 [1,2,3],[4,5,6],[7,8,9],[10,11,12]...... 一个 n12 的图长成这个&#xff08;唯一&#xff09;&#xff1a; 现在你需要给图染上红…

厂商推送限制说明及极光的适配方案

背景 自2023年起&#xff0c;各个厂商逐步对营销类消息做数量管控&#xff0c;具体如下&#xff1a; 华为 自2023年1月5日起&#xff0c;华为PUSH通道将根据应用类型对资讯营销类消息的每日推送数量进行上限管理&#xff0c;服务与通讯类消息每日推送数量不受限制。详情请参考推…

使用MMDetection进行目标检测、实例和全景分割

MMDetection 是一个基于 PyTorch 的目标检测开源工具箱&#xff0c;它是 OpenMMLab 项目的一部分。包含以下主要特性&#xff1a; 支持三个任务 目标检测&#xff08;Object Detection&#xff09;是指分类并定位图片中物体的任务实例分割&#xff08;Instance Segmentation&a…

服务间调用方式 OpenFeign 的介绍和使用

文章目录前言1、 RestTemplate1.1、通用方法 exchange1.2、RestTemplate 和 OpenFeign 的区别2、RPC 和 HTTP2.1、RPC 是什么2.2、RPC 调用过程示意图2.3、HTTP 是什么2.4、HTTP 调用过程示意图2.5、对比3 、OpenFeign3.1 、OpenFeign 常用注解3.2 、案例前言 Feign 停更了&am…

空间复杂度与时间复杂度

1、时间复杂度和空间复杂度 &#xff08;1&#xff09;时间复杂度、空间复杂度是什么&#xff1f; 算法效率分析分为两种&#xff1a;第一种是时间效率&#xff0c;第二种是空间效率。时间效率被称为时间复杂度&#xff0c;空间效率被称作空间复杂度时间复杂度主要衡量的是一…

Python空间分析| 02 利用Python计算空间局部自相关(LISA)

局部空间自相关 import esda import numpy as np import pandas as pd import libpysal as lps import geopandas as gpd import contextily as ctx import matplotlib.pyplot as plt from geopandas import GeoDataFrame from shapely.geometry import Point from pylab im…

LeetCode 1139. 最大的以 1 为边界的正方形

原题链接 难度&#xff1a;middle\color{orange}{middle}middle 2023/2/17 每日一题 题目描述 给你一个由若干 000 和 111 组成的二维网格 gridgridgrid&#xff0c;请你找出边界全部由 111 组成的最大 正方形 子网格&#xff0c;并返回该子网格中的元素数量。如果不存在&am…

Transformer论文阅读:ViT算法笔记

标题&#xff1a;An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 会议&#xff1a;ICLR2021 论文地址&#xff1a;https://openreview.net/forum?idYicbFdNTTy 文章目录Abstract1 Introduction2 Related Work3 Method3.1 Vision Transformer3.2…

【已解决】关于 luckysheet 设置纯文本,解决日期格式回显错误的办法

目录 一、现象 二、分析 三、思考过程 五、解决 六、参考链接 一、现象 在excel里面输入内容&#xff0c;如 2023-2-17 12:00 保存后&#xff0c;传回后端的数据被转化成了 数值类型&#xff0c;这显然是一种困扰。 如图所示 二、分析 查阅了文档和一些博客发现 Lucky…

2023美赛ICM F题 详细思路

对于本次美赛F题来说&#xff0c;核心之处就是综合评价模型&#xff0c;但考察我们这个模型的角度较以往常规的制定指标&#xff0c;计算得分给出排名然后分析结果这一套常规流程不同&#xff0c;这次美赛F题出题更贴合实际&#xff0c;整体聚焦在“制定完一个新指标后会带来的…

2019蓝桥杯真题数列求值(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 给定数列 1,1,1,3,5,9,17,⋯&#xff0c;从第 4 项开始&#xff0c;每项都是前 3 项的和。 求第 20190324 项的最后 4 位数字。 运行限制 最大运行时间&#xff1a…