python 计算订单_十分钟定位用户价值 - Python RFM数据挖掘

前言

Python由于丰富而强大的类库,广泛应用与互联网各技术领域,其中以数据挖掘和分析最为常见,本文通过Python实现RFM用户价值分析模型,带大家一起感受数据挖掘与分析的乐趣~

RFM:消费(Recency)、消费频率(Frequency)、与消费金额(Monetary),我们将商业活动核心三要素,用一定的权重计算,即可为各用户建立价值标签。

通过用户价值标签,我们就可以采用不同营销策略,做精准营销,以及拉新、召回等营运行动

RFM建模与分析

技术准备

技术栈:Python的time、numpy、pandas类包

Pandas:

提供丰富的数据函数库(导入、导出、选取、过滤、统计)

提供数据可视化功能

业务实践

现在我们有一份原始数据,包含用户id、订单时间、订单id、订单金额,期望通过RFM模型得到各用户价值:

1

代码如下,注释已经非常清晰,这里不做赘述:

import time

import numpy as np

import pandas as pd

# 导入数据

df_raw = pd.DataFrame(pd.read_excel('test.xlsx',index_col='USERID'))

# 缺失值处理

sales_data = df_raw.dropna() # 丢失带有缺失值NA的行记录

sales_data = sales_data[sales_data['AMOUNTINFO'] > 1] # 丢弃订单金额<=1的记录

# 数据转换 (按用户id去重归总)

recency_value = sales_data['ORDERDATE'].groupby(sales_data.index).max() #计算最近一次订单时间

frequency_value = sales_data['ORDERDATE'].groupby(sales_data.index).count() #计算订单频率

monetary_value = sales_data['AMOUNTINFO'].groupby(sales_data.index).sum() #计算订单总金额

# 分别计算R,F,M得分

deadline_date = pd.datetime(2020, 5,1) #指定一个时间节点,用来计算其他时间和改时间的距离

r_interval = (deadline_date - recency_value).dt.days #计算r间隔

r_score = pd.cut(r_interval, 5, labels=[5,4,3,2,1]) # 计算r得分 五分位倒序

f_score = pd.cut(frequency_value, 5, labels=[1,2,3,4,5]) # 计算f得分

m_score = pd.cut(monetary_value, 5, labels=[1,2,3,4,5]) # 计算m得分

# R,F,M数据合并

rfm_list = [r_score, f_score, m_score] # 将R,F,M三个维度组成列表

rfm_cols = ['r_score', 'f_score', 'm_score'] # 设置R,F,M三个维度的列名

rfm_pd = pd.DataFrame(np.array(rfm_list).transpose(), dtype=np.int32,

columns=rfm_cols, index=frequency_value.index) #建立R,F,M数据框

#策略1:加权得分 定义用户价值

rfm_pd['rfm_wscore'] = rfm_pd['r_score']*0.2 + rfm_pd['f_score']*0.2 + rfm_pd['m_score']*0.6

#策略2:RFM组合 直接输出三维度值

rfm_pd_tmp = rfm_pd.copy()

rfm_pd_tmp['r_score'] = rfm_pd_tmp['r_score'].astype('str')

rfm_pd_tmp['f_score'] = rfm_pd_tmp['f_score'].astype('str')

rfm_pd_tmp['m_score'] = rfm_pd_tmp['m_score'].astype('str')

rfm_pd['rfm_comb'] = rfm_pd_tmp['r_score'].str.cat(rfm_pd_tmp['f_score']).str.cat(rfm_pd_tmp['m_score'])

# 导出数据

rfm_pd.to_csv('simple.csv')

复制代码

运行脚本后,得到一份新的文件,内容如下:

1

以上就是我们整个数据挖掘和分析流程,Pandas功能丰富,若想进一步了解,可以查阅文档

结语

可见,基于Python,RFM模型还是挺好实现的,建模的难点其实在于阕值及权重值的选取,他们会直接影响最后的结果。

我个人的经验是基于2-8原则,选择R、F、M三者2-8原则的分界值作为阕值。再根据业务实际设定权重值。

技术本身是枯燥的,但是我们可以运用技术,让生活变得更加美好。后续也会为大家带来更多,Python有意思的实战分享!

python实战|利用openpyxl制作订单统计报表 刚开始学习openpyxl,试下利用openpyxl制作平时常用的统计报表,发现功能还是挺实用的,对包不熟悉,代码应该还有很多优化的空间,好几个循环都应该可以优化下,增加可读性~ 最终试验做成的报表如下,比较贴近日常用的报表格式了。 代码如下 一、连接数据库,导入订单明细数据 #①连接数据库并获取维表数据及清洗 conn = psycopg2.connect(database="database", user="root", . 阅读详情

相关推荐

【人工智能评测】基于Java+Vue的知识问答数据集管理系统:多维度自动判分与评分一致性分析平台设计 项目介绍 基于java+vue的直播电商商家准入审核与违规样本库平台设计与实现(含模型描述及部分示

内容概要:本文介绍了一个基于Java和Vue的知识问答评测数据集管理与判分一致性系统的设计与实现。系统旨在解决AI问答模型评测过程中存在的数据分散、人工评分标准不一、评分结果难以追溯等问题。通过构建统一的数据集管理体系,支持问题、参考答案、模型答案、评分维度等结构化存储,并引入多维度自动判分机制,结合关键词覆盖率、余弦相似度等算法实现客观指标量化。系统还提供多人评分一致性分析功能,利用平均绝对差、Kappa系数等统计方法评估评分一致性,标记争议样本并触发复核流程。整体架构采用Spring Boot + Vue前后端分离模式,集成MySQL、Redis和消息队列,保障高效稳定运行,并支持评测任务调度、权限控制与审计日志,形成从数据管理到模型优化的闭环。; 适合人群:具备Java与Vue开发基础,从事人工智能评测系统、知识库平台或教育测评工具研发的工程师及技术人员,尤其适合工作1-3年、希望深入理解评测系统设计逻辑的研发人员。; 使用场景及目标:① 构建标准化的知识问答评测平台,实现大规模数据的统一管理与批量处理;② 设计多维度自动评分模型,提升评测客观性与效率;③ 分析多人评分一致性,减少主观偏差,支撑模型迭代优化决策;④ 实现从评测任务创建、自动打分、人工复核到统计分析的全流程闭环管理。; 阅读建议:此资源不仅包含系统架构与核心代码示例,还涵盖评分算法实现与数据生成逻辑,建议结合Maven依赖配置与代码实践,搭建原型系统进行调试与扩展,重点关注评分权重校验、一致性计算与多源数据导入等关键环节的设计思路与实现细节。

Python实现电商订单的数据分析

一、数据信息 数据来源:https://www.heywhale.com/mw/dataset/5f64a07b71c700003072df60/file 说明:本数据集共有104557条数据,共计11个字段 字段: id : 序号 orderID :订单id userID :用户id goodsID :商品id orderAmount :订单总额 payment :买家实际支付金额 chanelID :渠道id platfromType :购买渠道 orderTime :订单产.

potterwand的博客 1万+

Delphi 13.2控件之无人机智能巡检系统平台介绍(1).zip

Delphi 13.2控件之无人机智能巡检系统平台介绍(1).zip

python盘点订单_Python数据分析难?手把手教你处理上万条京东订单数据(附源码)...

数据集简介本数据集共收集了发生在一个月内的28010条数据,包含以下字段:['订单编号', '总金额', '买家实际支付金额', '收货地址', '订单创建时间', '订单付款时间 ', '退款金额']7个字段说明:订单编号:订单编号;总金额:订单总金额;买家实际支付金额:总金额 - 退款金额(在已付款的情况下)。金额为0(在未付款的情况下);收货地址:各个省份;订单创建时间:下单时间;订单付款时...

weixin_39817215的博客 734

YOLO26算法纺织品面料纹理识别目标检测+训练好的模型+405张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[腈纶(acrylic), 棉(cotton), 雪纺(crepe), 牛仔(denim), 皮革(leather), 亚麻(linen), 尼龙(nylon), 丝绸(silk)] · 训练集:254 张 · 验证集:100 张 · 测试集:51 张 · 总计:405 张 该数据集聚焦于高精度纺织品面料材质识别场景,专为服装制造、纺织质检与智能零售等环节中对布料种类的快速准确判别需求而构建,具有明确的工业应用导向与实用价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 71 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.8112** mAP50-95 | 0.8063 Precision | 0.8162 Recall | 0.7480 train/box_loss | 0.1215 train/cls_loss | 0.5972 val/box_loss | 0.1691 val/cls_loss | 1.7964 【训练过程分析】 从一开始,训练过程的曲线图就给我留下了深刻的印象。开始的几轮,loss 值快速下降,模型仿佛找到了自己的节奏,准确率的提升明显。在最初的20轮里,训练曲线像是在说,一切都在按部就班地进行,模型似乎在享受着这个阶段的平滑下降,每一轮都向着最佳值一点点逼近。然而,到了第25轮之后,loss 下降的速度突然... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

高校技术转移办公室如何实现技术成果的智能推荐与精准路演?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

唯品会数据岗笔试真题拆解:从SQL窗口函数到电商业务分析

数据岗校招笔试与开发岗不同,它更看重候选人对业务问题的理解、分析框架的搭建以及数据工具的综合运用。SQL作为取数与处理的核心技能,是笔试中的高频考点,尤其是窗口函数在排名、累计值计算和N日留存等真实电商场景中的应用,往往成为拉开差距的关键。与此同时,统计基础中的假设检验与贝叶斯公式,以及对GMV拆解、漏斗分析、A/B测试的理解,也决定了能否在业务分析题中体现数据思维。本文以唯品会广为流传的一套校招真题为样本,从数据工具能力、统计概率基础、业务理解与指标拆解、逻辑推理四个维度,系统梳理常考题型与易错细节,并给

aofan9566的博客 385

国央企创新负责人如何快速识别具有产业化潜力的科技成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

python盘点订单_python统计订单走势

#coding=utf-8importnumpy as npimportpandas as pdimportmatplotlib.pyplot as pltimportmatplotlib.ticker as ticker#------------ 设置为系统中的中文字体------------from pylab import *mpl.rcParams['font.sans-serif'] =...

weixin_39607473的博客 295

【若依(ruoyi)】BootstrapTable列宽定制实战:突破width属性限制的两种方案

本文针对若依(RuoYi)框架中BootstrapTable组件列宽设置失效的常见问题,提供了两种实战解决方案。通过CSS样式覆盖法强制定义列宽,或利用formatter函数进行动态HTML包裹,有效突破width属性限制,实现精准的表格列宽定制。

weixin_29013129的博客 170

SWAT模型非点源模拟原理

目录引言模型概述非点源污染模拟原理物质迁移内容过程营养物农药病原菌运移河道水质模型营养元素的地表水体循环河道水质模拟藻类模拟氮元素磷元素生化需氧量及溶解氧重金属的运移蓄水体水质模拟 引言 今天无意接触到这一块,就记录下来了。 模型概述 1、流域中非点源污染的来源主要是农业化肥和农药的施用。 2、氮、磷等营养物和农药的迁移和转化取决于化合物在土壤环境中经历的转化过程。 3、SWAT模型可以模拟水文相应单元内氮、磷完整的营养物循环过程和任何一种农药的降解过程。 4、SWAT模拟流域内泥沙、藻类、溶解氧、有机污染

DoWayChan的博客 4875

python盘点订单_在线超市-Ulabox订单数据分析(python)

摘要本次实践案例利用数据kaggle数据进行分析。链接如下该数据集为西班牙在线杂货店Ulabox订单数据,数据集包括匿名的子集30K订单从2017年开始的所有类型的客户。整个分析分为五个步骤:“提出问题”,“理解数据”,“数据清洗”,“建立模型”,“总结”。提出问题所谓提出问题就是建立目标,我们进行数据分析的过程最终就是为了完成目标。那么这次项目的目标是:什么样的客户喜欢在Ulabox平台上购物。...

weixin_39922151的博客 538

RTKLIB模糊度固定实战:三种模式对比与部分模糊度固定代码解析

本文深入解析RTKLIB中模糊度固定的三种核心模式(continuous、instantaneous、fix and hold),对比其性能与适用场景,并详细拆解了部分模糊度固定技术的源码实现。通过实战案例与代码级解析,为GNSS高精度定位开发者提供了在不同数据特性下提升固定成功率的优化思路与配置建议。

efc1234567的博客 464

python计算营业额的代码_python 统计代码行数简单实例

python 统计代码行数简单实例送测的时候,发现需要统计代码行数于是写了个小程序统计自己的代码的行数。#calclate_code_lines.pyimport osdef afileline(f_path):res = 0f = open(f_path)for lines in f:if lines.split():res += 1return resif __name__=='__main_...

weixin_39684235的博客 824

ESP32C6+ESP-IDF5.2实战:基于RS485的ModbusRTU从站开发与调试

本文详细介绍了基于ESP32C6和ESP-IDF5.2开发ModbusRTU从站的实战指南。涵盖硬件连接、协议实现、ESP-Modbus库移植、寄存器映射及调试技巧,帮助开发者快速构建稳定可靠的工业级RS485通信节点,并解决常见通信故障。

play7的博客 1183

使用R语言实战:构建Logistic回归模型

Logistic回归是一种基于概率的分类算法,它用于预测离散的结果变量(也称为响应变量或因变量)。与线性回归不同,Logistic回归的输出是一个概率值,通常在0和1之间。这使得它非常适合处理二分类问题。市场营销:预测客户是否会购买某个产品。医学研究:预测疾病的发生与否。信用风险评估:预测个人申请贷款的违约风险。社会科学:预测个人对某个政策的态度。

2301_79331230的博客 1135

python数据分析实例_Python数据分析实例-统计学在解决奶茶店问题中的应用

作为数据分析师,除了熟练各种分析工具外,更重要的是分析、解决问题的能力以及扎实的数学功底,尤其是统计学。本文将用一个例子,一步一步展示1)分析问题的步骤,2)更具需求选择合适工具和数据获取,3)和统计学知识在实例中的运用。本文涉及例子和数据纯属虚构,如有雷同纯属巧合。商业问题:是否需要多招一个奶茶工?我的朋友小文在大学城开了一个奶茶店。由于开在大学城,奶茶店生意稳定,从周一到周日生意都差不多。现在...

weixin_39624429的博客 1653

基于深度学习的农作物病虫害检测识别系统:YOLOv8 + UI界面 + 数据集

该系统的目标是使用YOLOv8模型自动检测农作物的病虫害,并通过UI界面提供实时反馈。用户可以通过上传图像,系统会输出图像中是否存在病虫害以及具体种类。数据集准备与处理:收集并准备包含农作物病虫害图像的数据集,并进行标注和数据增强。YOLOv8模型训练:使用YOLOv8训练农作物病虫害检测模型。UI界面设计与开发:开发一个用户友好的界面,支持上传图像并展示检测结果。系统测试与优化:评估模型的准确性、实时性,并对系统进行优化。

YOLO 880

你用 Python 做过什么有趣的数据挖掘项目

编者按:本文经授权转载自知乎回答,作者何明科系一面网络技术有限公司创始人。作者现身说法,用自己的创业历程举例说明:有钱很重要,有趣更重要。以下是正文:enjoy: 第零步:原点,大数据与价值 大概一年多以前,和几个小伙伴均认同一个趋势:觉得通过技术手段获取网上越来越丰富的数据,并基于这些数据做分析及可视化,必能产生有价值的结果,帮助大家改善生活。(大数据被叫烂了,所以用低调的方式来解释

u013593585的专栏 4042

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1286

【图像拼接】论文精读:As-Rigid-As-Possible Shape Manipulation(ARAP)

文章目录前言1.摘要2.算法的总体流程总结 前言 图像变形算法 1.摘要 论文提出了一个二维图形互动系统。图形是建立在三角形网格上的,用户只需移动几个网格顶点(限制顶点),系统通过最小化每个三角形的误差计算网格剩余顶点(自由顶点)的位置。 算法分两步: 适当旋转每个三角形。 调整大小。 关键是使用二次度量误差将最小化问题转换成线性方程组,然后再解这个方程组。 刚性形状变形是很难的,论文的研究使其变得简单。 2.算法的总体流程 总的流程分三步: 将图形用三角形网格覆盖 选择三个点(限制顶点) 操纵限

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 15万+

python计算时间间隔、以分钟计数_计算分钟时间间隔Python之间的行数

我想使用groupby函数计算30分钟时间间隔的行数,从第一个单元格向下列开始计算30分钟的间隔。以下是我所拥有的:LOGINID DATE TIMEmickey 1/1/2018 0 days 08:54:00.000000000mickey 1/1/2018 0 days 08:57:00.000000000mickey 1/1/2018 0 days 09:01...

weixin_33169898的博客 2193

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: python快速开发框架_八款常用的 Python GUI 开发框架推荐
下一篇: python 字符串拼接_python字符串连接的几种方式总结
weixin_39863371
博客等级 码龄9年 34粉丝 161原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值