数据分析:消费者数据分析
数据分析:消费者数据分析
作者: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个月的跟踪记录。
总结
人生很短,不要看轻自己,努力一些;人生不公,不要折磨自己,看淡一些;人生的谷底,变成我重建人生的坚实基石。所以不要畏惧失败;只要活着就必然要面对失败,除非你小心翼翼到仿佛一生都没有活过。如果这样,你的失败将来自于放弃生活。
相关文章:
数据分析:消费者数据分析
数据分析:消费者数据分析 作者:AOAIYI 创作不易,如果觉得文章不错或能帮助到你学习,记得点赞收藏评论一下哦 文章目录数据分析:消费者数据分析一、前言二、数据准备三、数据预处理四、个体消费者分析五、用户消费行为总…...
Transformer论文阅读:ViT算法笔记
标题:An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale 会议:ICLR2021 论文地址:https://openreview.net/forum?idYicbFdNTTy 文章目录Abstract1 Introduction2 Related Work3 Method3.1 Vision Transformer3.2…...
Android基础练习解答【2】
文章目录一 填空题二 判断题三 选择题四 简答题一 填空题 1.除了开启开发者选项之外,还需打开手机上的 usb调试 开关,然后才能在手机上调试App。 2.App开发的两大技术路线包括 _原生开发_和混合开发。 3.App工程的编译…...
k8s 搭建
需求:搭建k8s 为后续自动部署做准备进程:安装至少两个ubuntu18.04系统(一个master 一到多个 node)每个系统上都要装上docker 和 kubernetes安装dockersudo su apt-get update#安装相关插件 apt-get install apt-transport-https c…...
安全运维之mysql基线检查
版本加固 选择稳定版本并及时更新、打补丁。 稳定版本:发行6-12个月以内的偶数版本。 检查方法: 使用sql语句:select version(); 检查结果: 存在问题:当前数据库版本较老需要更新 解决方案:前往http://www.mysql…...
跨境电商卖家敦煌、雅虎、乐天、亚马逊测评自养号的重要性!
作为亚马逊、敦煌、乐天、雅虎等跨境的卖家,这两年以来,面对流量越来越贵的现实,卖家需要更加珍惜每次访问listing页面的流量,把转化做好,把流量尽可能转化为更多的订单。 提升转化率的技巧 提升产品转化率࿰…...
Python 之 Matplotlib xticks 的再次说明、图形样式和子图
文章目录一. 改变 x 轴显示内容 xticks 方法再次说明1. x 轴是数值型数据2. 将 x 轴更改为字符串3. 总结二. 其他元素可视性1. 显示网格:plt.grid()2. plt.gca( ) 对坐标轴的操作三. plt.rcParams 设置画图的分辨率,大小等信息四. 图表的样式参数设置1. …...
3.InfluxDB WEB使用
结合telegraf做指标数据收集 点击 Load Data -> Telegraf 配置界面 influxDB支持在WEB-UI中生成配置文件 然后利用telegraf通过远程URL请求的方式进行获取 点击CREATE CONFIGURATION 创建telegraf配置文件 选择Bucket InfluxDB提供了很多配置好的监控模板供用户选择 可以…...
git冲突合并
一、版本说明 dev:本地仓库中的dev分支 master:本地仓库中的master分支 remotes/origin/master和origin/master:都是远程仓库上的master分支 二、一个解决冲突的常规流程 1、前提条件:不能在master分支上修改任何文件。master分支…...
项目自动化构建工具make/Makefile
目录 make/Makefile概念和关系 make/Makefie的使用 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重…...
双目客流统计方案的应用原理
双目客流统计客流摄像头采用立体视觉技术实现高度统计功能。基于视差原理。利用双镜头摄取的两幅图像的视差,构建三维场景,在检测到运动目标后。通过计算图像对应点间的位置偏差。获取目标的三维信息,在深度图像中对目标的检测与追踪…...
python魔术方法(二)
__getattr__() class A:def __getattr__(self,name):print(f"getting {name}")raise AttributeErroro A() print(o.test)程序调用一个对象的属性,当这个属性不存的时候希望程序做些什么,这里我们打印希望的属性,并且抛出异常 __…...
cmd for命令笔记
语法 help for输出如下: 对一组文件中的每一个文件执行某个特定命令。 FOR %variable IN (set) DO command [command-parameters] %variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 c…...
4.1 Filter-policy
1. 实验目的 熟悉Filter-policy的应用场景掌握Filter-policy的配置方法2. 实验拓扑 Filter-policy实验拓扑如图4-5所示: 图4-5:Filter-policy 3. 实验步骤 (1) 网络连通性 R1的配置 <Huawei>system-vi…...
day15_常用类
今日内容 上课同步视频:CuteN饕餮的个人空间_哔哩哔哩_bilibili 同步笔记沐沐霸的博客_CSDN博客-Java2301 零、 复习昨日 一、作业 二、代码块[了解] 三、API 四、Object 五、包装类 六、数学和随机 零、 复习昨日 抽象接口修饰符abstractinterface是不是类类接口属性正常属性没…...
【网络原理5】IP协议篇
目录 IP协议报头 4位版本号 4位首部长度 8位服务类型(TOS) 16位总长度 IP拆包 16位标识、3位标志、13位片偏移编辑 8位生存时间(TTL) 8位协议 16位首部校验和 网络地址管理 32位源ip&32位目的ip 方案一:动态分配ip地址 方案2:NAT网络地址转换(使用一个ip代…...
Unity导出WebGL工程,并部署本地web服务器
WebGL打包 设置修改 在Build Settings->PlayerSettings->Other Settings->Rendering 将Color Space 设置为Gamma 将Lightmap Encoding 设置为NormalQuality 在Build Settings->PlayerSettings->Publishing Settings 勾选Decompression Fallback 打包 完成配…...
蓝桥杯考试总结汇总
一进考场设置devc快捷键 设置注释和取消注释快捷键设置代码自动补全快捷键开启devc调试功能,详细可以看怎么开调试功能https://blog.csdn.net/hz18790581821/article/details/78418648比赛过程中,如果不相信自己是否做对,没有把握的…...
备战蓝桥杯【二维前缀和】
🌹作者:云小逸 📝个人主页:云小逸的主页 📝Github:云小逸的Github 🤟motto:要敢于一个人默默的面对自己,强大自己才是核心。不要等到什么都没有了,才下定决心去做。种一颗树,最好的时间是十年前…...
阿里P6细谈Python简易接口自动化测试框架设计与实现,我直呼内行
1、开发环境 操作系统:Ubuntu18 开发工具:IDEAPyCharm插件 Python版本:3.6 2、用到的模块 requests:用于发送请求 xlrd:操作Excel,组织测试用例 smtplib,email:发送测试报告 l…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
【大厂机试题解法笔记】矩阵匹配
题目 从一个 N * M(N ≤ M)的矩阵中选出 N 个数,任意两个数字不能在同一行或同一列,求选出来的 N 个数中第 K 大的数字的最小值是多少。 输入描述 输入矩阵要求:1 ≤ K ≤ N ≤ M ≤ 150 输入格式 N M K N*M矩阵 输…...
轻量安全的密码管理工具Vaultwarden
一、Vaultwarden概述 Vaultwarden主要作用是提供一个自托管的密码管理器服务。它是Bitwarden密码管理器的第三方轻量版,由国外开发者在Bitwarden的基础上,采用Rust语言重写而成。 (一)Vaultwarden镜像的作用及特点 轻量级与高性…...
python3GUI--基于PyQt5+DeepSort+YOLOv8智能人员入侵检测系统(详细图文介绍)
文章目录 一.前言二.技术介绍1.PyQt52.DeepSort3.卡尔曼滤波4.YOLOv85.SQLite36.多线程7.入侵人员检测8.ROI区域 三.核心功能1.登录注册1.登录2.注册 2.主界面1.主界面简介2.数据输入3.参数配置4.告警配置5.操作控制台6.核心内容显示区域7.检…...
