python开发跟淘宝有关联微_Python_淘宝用户行为分析

一、数据导入与清洗

源数据量有1亿余条,为减轻计算量,抽样总量的20%用于计算分析

#coding=gbk

import numpy as py

import pandas as pd

import datetime

import os

os.chdir('D:/pythonlily/test1')

data=pd.read_csv('UserBehavior.csv',header=None)

data.columns=['用户id','商品id','商品类目id','行为类型','时间戳']

df=data.sample(frac=0.2)

抽样后的数量大约2000w,查看下数据集整体情况

官方说时间范围是2017年11月25日至2017年12月3日之间,但是从这里看出时间有异常值,剔除异常值,只筛选2017年11月25日至2017年12月3日的数据。剔除时间异常值1w+条后,仍有2000w+的数量。

df=df[(df['时间戳']<1512316800)&(df['时间戳']>1511539200)]

将时间戳转换为日期格式

tt=[]

for i in range(0,len(df)):

row= df['时间戳'].iloc[i]

a = int(row)

date = datetime.datetime.fromtimestamp(a)

targetDate = date.strftime("%Y-%m-%d%H:%M:%S")

tt.append(targetDate)

df['日期']=tt

二、提出问题并计算分析

01用户行为转化漏斗,找到需要改进的环节,即uv→pv→(cart+fav)→buy

02从一周的时间维度了解用户的行为习惯,即计算每日各环节的用户行为

03从一天24H时间维度了解用户的行为习惯,即计算用户各个时间段的用户行为差别

04不同商品类目中用户行为的差别分析,购买次数占前80%的品类有多少?

01用户行为转化漏斗

uv=len(df['用户id'].unique())

temp=df[df['行为类型']=='pv'].loc[:,['用户id']]

pv=len(temp['用户id'].unique())

temp=df[df['行为类型']=='fav'].loc[:,['用户id']]

fav=len(temp['用户id'].unique())

temp=df[df['行为类型']=='cart'].loc[:,['用户id']]

cart=len(temp['用户id'].unique())

temp=df[df['行为类型']=='buy'].loc[:,['用户id']]

buy=len(temp['用户id'].unique())

所以uv=980383,pv=972254,cart=464816,fav=221842,buy=283387,总体转化率为buy/uv=28.9%,各环节转化率漏斗图如下:

02从一周的时间维度了解用户的行为习惯

df['日期2']=df['日期'].str[:10] #提取字符串类型中的日期

ff=df[['用户id','行为类型','日期2']]

pd.pivot_table(ff,index=['日期2'],columns=['行为类型'],aggfunc='count',fill_value=0)

由此可知,周末(12/2、12/3)用户的各种行为数明显高于其他日期,这很正常。看看转化率:

一般情况下,用户选中心仪的商品直接购买,少部分用户先收藏或者加入购物车后再付款购买。上图显示周末的收藏+购物车的转化率显著上升、购买率有所下滑的,可能用户在周末时间比较充裕、货比三家的行为更多,购买行为比工作日更加理性。

03从一天24H时间维度了解用户的行为习惯

df['时刻']=df['日期'].str[11:13]

dd=df[['用户id','时刻','行为类型']]

pd.pivot_table(dd,index='时刻',columns='行为类型',aggfunc='count')

一天中凌晨3~6点的用户量是最少的,白天11~19点这8个小时,各种用户行为发生的数量是比较平稳的,晚上8点后至11点用户的访问量快速上升,达到最高峰 。

收藏+购物车的转化率比较稳定,但是购买率最高时段是上午10点~12点,均有30%以上的转化率,用户量最高峰的22~23点反而购买率较低,可能也是白天没有晚上时间充裕,购买行为更加干脆。

04不同商品类目中用户行为的差别分析

计算购买数最多的商品类目id,并查看前20位的购买行为的差别

cc=df[['用户id','商品类目id','行为类型']]

re=pd.pivot_table(cc,index='商品类目id',columns='行为类型',aggfunc='count',fill_value=0)

re=re.reset_index()

re.columns=['商品类目id ','buy','cart','fav','pv']

re=re.sort_values('buy',ascending=False)

re.head(20)

显然购买的最多的商品类目,其浏览点击、收藏、加购物车的行为数量不一定是最高的,即转化率高、而人气不一定最高,大胆猜测下转化率高的类目为男性刚需商品,人气高的商品类目为女性所需商品。

re['购买次数占比']=re['buy']/re['buy'].sum()

re['购买次数累计占比']=re['购买次数占比'].cumsum()

re['购买次数前0.8']=re['购买次数累计占比']<=0.8

re.groupby(['购买次数前0.8']).size()

购买次数前0.8

False 8038

True 687

dtype: int64

所以贡献80%购买次数占比的商品类目个数是687,占所有类目的per=687/8725=8%。

三、结论

1、总体的用户购买率为28.9%,购买转化率与行业的标准进行比较,后面可以采取活动(用户细分,转化路径细查)提高购买转化率。

2、该商铺的用户行为周末比工作日更加活跃,晚上比白天更活跃,并于22:00~23:00点达到活跃高峰值,运营人员可根据活跃时间进行相关的活动;

3、针对不同品类的购买转化率采取不同的策略,提高已购品类的转化率,一方面,对未被购买的品类进行分析,找出原因,促成购买。

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

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

相关文章

android 自定义表情包,android基于环信的聊天和表情自定义

环信sdk的导入自定义聊天界面此处只有静态图&#xff0c;请谅解。自定义表情发送自定义聊天界面简单说下自定义的聊天界面&#xff0c;一个带有recyclerview和的xml文件&#xff0c;和对应的adapter即可。recyclerview为展示聊天信息。通过EMClient.getInstance().chatManager(…

如何快速获取properties中的配置属性值

本文为博主原创&#xff0c;未经博主允许&#xff0c;不得转载&#xff1a; 在项目中&#xff0c;经常需要将一些配置的常量信息放到properties文件中&#xff0c;这样在项目的配置变动的时候&#xff0c;只需要修改配置文件中 对应的配置常量即可。 在项目应用中&#xff0c;如…

erlang安装_RabbitMQ的使用(一)- RabbitMQ服务安装

作者&#xff1a;markjiang7m2博客园地址&#xff1a;https://www.cnblogs.com/markjiang7m2/p/12769627.html官网地址&#xff1a;http://letyouknow.netRabbitMQ&#xff0c;消息队列的一个中间件&#xff0c;这里不打算展开介绍了。此文意在记录工作中使用RabbitMQ时的过程及…

android 本地资源 uri,Android 本地文件选择

打开系统文件&#xff1a;Intent intent new Intent(Intent.ACTION_GET_CONTENT);intent.setType("*/*");intent.addCategory(Intent.CATEGORY_OPENABLE);try {startActivityForResult(Intent.createChooser(intent, getString(R.string.im_text_select_file)), SEN…

NodeJS React 开发环境搭建

1、首先需要安装NodeJS环境&#xff0c;下载NodeJS安装程序安装即可。 NodeJS下载地址&#xff1a; https://nodejs.org/en/download/ 2、安装NodeJS的web框架express npm install express-generator -g 3、创建项目 express studyReact 4、添加jsx引擎支持 npm install ex…

dreamweaver 正则表达式为属性值加上双引号_Python正则表达式(一)

Python正则表达式正则表达式是处理字符串的强大工具&#xff0c;拥有独特的语法和独立的处理引擎。我们在大文本中匹配字符串时&#xff0c;有些情况用str自带的函数(比如find, in)可能可以完成&#xff0c;有些情况会稍稍复杂一些(比如说找出所有“像邮箱”的字符串&#xff0…

lftp linux,linux下使用 lftp

linux下使用 lftp发布时间:2007-03-18 11:41:08来源:红联作者:Addfun一直想找一个在linux里能与FlashFXP比肩的ftp客户端&#xff0c;试过了若干种GUI的ftp client&#xff0c;有free的也有non-free的&#xff0c;但实际用过得同志应该清楚&#xff0c;说它们是lj&#xff0c;恐…

js判断字符是否为空的方法

js判断字符是否为空的方法: //判断字符是否为空的方法 function isEmpty(obj){if(typeof obj "undefined" || obj null || obj ""){return true;}else{return false;} } 使用示例&#xff1a; if (!isEmpty(value)) {alert(value); } 转载于:https://ww…

mapperscan注解_SpringBoot 遗忘后的简单快速回忆之环境搭建与常见注解

原文作者&#xff1a;笑而抿之乎搭建SpringBoot环境&#xff0c;创建maven 项目后1&#xff0c;创建入口类&#xff1a;MapperScan(basePackages "com.baizhi.dao" ) //把dao层交给工厂管理SpringBootApplication//标识入口类的注解public class Applincation { …

Android插件丢失怎么办,Android studio推荐插件以及升级后插件丢失问题解决

1、android-butterknife-zeleznyandroid-butterknife-zelezny 是根据butterknife定制的一款插件&#xff0c;能够方便快速初始化&#xff0c;对于我来说是开发必备&#xff0c;本人也对此插件进行了一些优化&#xff0c;个人感觉用起来更爽 &#xff0c;博客地址&#xff1a;Bu…

软工团队 - 系统设计

软工团队 - 系统设计 修改完善需求规格说明书 针对栋哥在上周答辩中主要提到问题的相应改动 管理员层面没有在需求中得到很好的体现。没有手机号验证。那时候回答的比较含糊orz&#xff0c;所以在这里说明一下对此作出的解释和修改。 对于第一点&#xff0c;我们讨论的结果是至…

python decimal_python学习笔记一

1、~4不太明白、右移、左移整体移动添加零2、注意运算符&#xff0c;3、1<<5&716&704、set中的pop() 方法用于随机移除一个元素。字典中&#xff1a;list中5、Python dir() 函数dir()函数不带参数时&#xff0c;返回当前范围内的变量、方法和定义的类型列表&…

android theme继承原理,android – 使用Holo父主题从Theme.Light继承editText

所以我的想法是从android&#xff1a;Theme.Holo.Light扩展一个自定义主题(实际上只是一种风格),然后覆盖EditText属性以使用android&#xff1a;Theme中的父设置.它看起来像android&#xff1a;Theme.Holo.Light使用editTextStyle属性引用来更改EditTexts的外观&#xff1a;an…

java基础基础总结----- Date

前言&#xff1a;其实在学习这个的时候&#xff0c;自我感觉学到什么直接查询API就可以了&#xff0c;没有必要再去研究某个方法怎么使用&#xff0c; 重点学习一下经常用到的方法。感觉自己的写的博客&#xff0c;就跟自己的笔记一样&#xff0c;用的是时候&#xff0c;就能快…

pandas object转float_Pandas中文官档~基础用法6

呆鸟云&#xff1a;“这一系列长篇终于连载完了&#xff0c;还请大家关注 Python 大咖谈&#xff0c;这里专注 Python 数据分析&#xff0c;后期呆鸟还会给大家分享更多 Pandas 好文。”数据类型大多数情况下&#xff0c;pandas 使用 Numpy 数组、Series 或 DataFrame 里某列的…

android studio 拉取分支,AndroidStudio中使用Git-高级篇(二)——新建分支(branch)和拉取请求(Pull request)...

前段时间写过一篇文章介绍如何在AndroidStudio使用上传项目到github&#xff0c;今天接着给大家带来了他的高级篇——新建分支(branch)和拉取请求(Pull request)。在真正的开发中我们很少写完代码commit后直接push代码上去&#xff0c;因为这样做没有经过第二个人的审核&#x…

用NGINX做负载均衡,keepalived高可用

实验环境&#xff0c;四台虚拟机&#xff0c;两台做负载均衡&#xff0c;两台做RS IP地址&#xff1a;两台负载均衡分别为&#xff1a;10.0.0.7&#xff1b;10.0.0.8&#xff08;高可用keepalived&#xff09; 两台 RS主机地址为&#xff1a; 10.0.0.9&#xff1b;10.0.0.10 …

collection转换为list_JAVA 集合 接口继承关系和实现,List,Set,Map(总结)

一. JAVA 集合1.接口继承关系和实现集合类存放于 Java.util 包中&#xff0c;主要有 3 种&#xff1a;set(集&#xff09;、list(列表包含 Queue&#xff09;和 map(映射)。1. Collection&#xff1a;Collection 是集合 List、Set、Queue 的最基本的接口。2. Iterator&#xff…

采用类药五规则成功设计药物的案例

在药物设计中采用类药五规则&#xff08;Lipinski’s Rule of Five&#xff09;的一个著名例子是非核苷类反转录酶抑制剂&#xff08;NNRTI&#xff09;伊法韦伦&#xff08;Efavirenz&#xff09;的开发。伊法韦伦是用于治疗HIV的药物&#xff0c;其设计过程考虑了类药五规则&…

lazarus开发android应用程序指南,Lazarus开发Android应用程序指南(2)

本指南版权由delphicn所有&#xff0c;QQ&#xff1a;1339838080(tom)&#xff0c;转载请保留版权信息。文中难免有错&#xff0c;欢迎指正。2&#xff0e;编译运行lazarus中的Android示例程序。lazarus安装包中自带示例是在lazarus/examples/androidlcl/androidlcltest.lpi 。…