手机销量分析案例

项目背景

  • 某电商商城随着业务量的发展,积累了大量的用户手机销售订单数据。决策层希望能够通过对这些数据的分析了解更多的用户信息及用户的分布,从而可以指导下一年的市场营销方案以及更加精准的定位市场,进行广告投放。

数据说明

  • 数据时间从 2017.01.01至2019.03.31 共41800 条,数据存储在 excel 文件 中(Phone.xlsx)。
    在这里插入图片描述

import pandas as pd
data = pd.read_excel(‘./Phone.xlsx’)
data.head()
在这里插入图片描述

data.shape
(41800, 20)

  • 查看缺失数据的个数和占比

#查看缺失数据
for col in data.columns:
null_count = data[col].isnull().sum()
if null_count > 0:
p = str(null_count / data[col].size * 100)+‘%’
print(col+‘:’+p)
年:100.0%
月:100.0%
年龄段:100.0%

  • 缺失值处理

data[‘年’] = data[‘订单日期’].dt.year
data[‘月’] = data[‘订单日期’].dt.month

#数据分箱:
#[0-16,17-26,27-36,37-49]
data[‘年龄段’] = pd.cut(data[‘年龄’],bins=[0,16,26,36,49])

  • 查看消费者对不同手机品牌的青睐程度

#查看不同品牌手机的累计销量和累计销售额,且对累计销量进行降序
data.groupby(by=‘品牌’)[[‘销售额’,‘数量’]].sum().sort_values(‘数量’,ascending=False)
在这里插入图片描述

  • 查看不同品牌的不同型号数量

p_count_list = [] #品牌名称和品牌型号的数量
for p in data[‘品牌’].unique():
#可以将p表示品牌的行数据
p_df = data.loc[data[‘品牌’] == p]
p_count = p_df[‘型号’].nunique() #品牌对应不同型号的数量
p_count_list.append([p,p_count])
pd.DataFrame(p_count_list,columns=[‘品牌’,‘型号数量’])
在这里插入图片描述

#分组聚合
data.groupby(by=‘品牌’)[‘型号’].nunique()
在这里插入图片描述

#分类汇总
data.pivot_table(index=‘品牌’,values=‘型号’,aggfunc=‘nunique’)
在这里插入图片描述

  • 查看不同品牌中价格最高和最低的型号是什么

data.groupby(by=[‘品牌’,‘型号’])[‘价格’].agg([‘max’,‘min’])
在这里插入图片描述

  • 查看不同月份的销量情况,哪些月份销量比较高

data.groupby(by=‘月’)[‘数量’].sum().sort_values(ascending=False)

3 16582
1 16420
2 15561
12 11060
5 11026
7 10987
11 10960
8 10884
4 10863
10 10833
6 10733
9 10644
Name: 数量, dtype: int64

  • 不同年龄段的购买力

data.groupby(by=‘年龄段’)[‘数量’].sum().sort_values(ascending=False)
年龄段
(16, 26] 74573
(26, 36] 68910
(0, 16] 1758
(36, 49] 1312
Name: 数量, dtype: int64

  • 查看不同省份不同城市的购买力情况

data.pivot_table(index=[‘省份名字’,‘城市名字’],values=‘数量’,aggfunc=‘sum’).sort_values(‘数量’,ascending=False)
在这里插入图片描述

  • 查看不同品牌的不同机身内存的订单量(只考虑订单量,不考虑一个订单中包含几个已购商品)

pd.crosstab(index=data[‘品牌’],columns=data[‘机身内存’])
在这里插入图片描述
源文件和示例模拟数据可在这里下载:
https://download.csdn.net/download/ak2111/89055350?spm=1001.2014.3001.5501
内容来源于大数据分析课程。

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

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

相关文章

等变GNN

非空集合 G G G上定义的二元运算如果满足某些性质,就构成了一个群。常见的群有: O ( n ) O(n) O(n): n n n维正交群,包含旋转和反演操作,反演可以理解为推理或者映射。 S O ( n ) SO(n) SO(n): n n n维特殊…

【学习笔记】java项目—苍穹外卖day04

文章目录 1. 新增套餐1.1 需求分析和设计1.2 代码实现1.2.1 DishController1.2.2 DishService1.2.3 DishServiceImpl1.2.4 DishMapper1.2.5 DishMapper.xml1.2.6 SetmealController1.2.7 SetmealService1.2.8 SetmealServiceImpl1.2.9 SetmealMapper1.2.10 SetmealMapper.xml1.…

Web攻击越发复杂,企业如何保护云上业

如今,电子政务、电子商务、网上银行、网上营业厅等依托Web应用,为广大用户提供灵活多样的服务。在这之中,流量攻击堪称是Web应用的最大敌人,黑客通过流量攻击获取利益、竞争对手雇佣黑客发起恶意攻击、不法分子通过流量攻击瘫痪目…

MySQL中使用distinct单、多字段去重方法

目录 一、distinct 1.1 只对一个字段查重 1.2多个字段去重 1.3针对null处理 1.4与distinctrow同义 二、聚合函数中使用distinct 三、CONCAT_WS函数 多个字段拼接去重是指将多个字段的值按照一定的规则进行拼接,并去除重复的拼接结果。这样可以生成唯一标识符…

【中大厂前端面试百问】这不迷死你?

写在前面 最近收到很多同行的抱怨,前端开发高级还行,对初中级最难过的不是面试过不去,而是“已读不回”,来自某聘的梗,确实是,初中级因为坑位较少,很多HR在专心招聘的时候都未必能让所有投简历…

TikTok账号为什么被封?如何防止被封?

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

TikTok账号封号原因是什么?全面攻略

多人在使用TikTok的过程中都会遇到一些问题,比如为什么TikTok没有浏览量?事实上,这很可能是因为你的账号已被禁止。但为什么它会被封呢?你怎样才能解决它? 一、TikTok账号为什么被封? 1、什么是 TikTok 影…

本地项目提交到远程服务器的git流程

初入职场的开发小白或多或少都会遇到一些使用git来管理项目的问题,这里给大家浅浅的总结一下大致的提交流程 具体步骤如下: 将当前目录下的所有修改的文件添加到暂存区 git add .提交暂存区文件到本地仓库中 描述的内容就是你本次提交的一些相关说明 …

数据结构与算法(2)顺序表的初始化、插入、打印、删除、查找元素——C语言版

目录 1.前言 2.头文件的定义 3.菜单栏的设置 4.顺序表的初始化 5.添加元素 6.打印元素 7.查找元素 8.删除元素 9.插入元素 10.主函数 11.完整的代码实现 1.前言 数据结构包括三个方面 逻辑结构存储结构运算 而线性表有两种典型的存储结构 顺序存储结构链式存储结构 具体关系可…

idea端口占用

报错:Verify the connector‘s configuration, identify and stop any process that‘s listening on port XXXX 翻译: 原因: 解决: 一、重启大法 二、手动关闭 启动spring项目是控制台报错,详细信息如下&#xff…

openGauss 访问控制模型

访问控制模型 可获得性 本特性自openGauss 1.1.0版本开始引入。 特性简介 管理用户访问权限,为用户分配完成任务所需要的最小权限。 客户价值 客户依据自身需求创建对应的数据库用户并赋予相应的权限给操作人员,将数据库使用风险降到最低。 特性描…

Compose Navigation导航使用的部分注意事项

文章目录 一、前言二、使用判断条件进行显示隐藏和Navigation的区别三、Navigation和ViewModel的关系四、Navigation中替换页面的方式 一、前言 在Android的项目架构中有一种由单个Activity,多个页面组成的架构。页面之前是由Fragment来承载显示,现在可…

Photoshop 2024 Mac/win---图像处理的新纪元,解锁无限创意

Photoshop 2024是一款功能强大的图像处理软件,以其卓越的性能和广泛的应用领域,赢得了设计师、摄影师、图形艺术家等各类创意工作者的青睐。它提供了丰富的绘画和编辑工具,让用户能够轻松进行图片编辑、合成、校色、抠图等操作,实…

【0day】号卡sql注入

漏洞描述 号卡系统一键即可便捷快速的为您自己打造一个独立的属于你的号卡分销商城。此系统某接口存在SQL注入漏洞。 fofa语句 icon_hash"-795291075" 漏洞复现 构造payload nuclei验证 pocsuite3 验证 verify 验证 attack 验证 github poc总汇地址&#xff1a…

SpringBoot:自定义线程池配置类

文章目录 一、前言二、案例展示1、初始版本2、代码审核意见和优化建议3、潜在问题和风险4、优化建议5、优化后的代码 三、具体使用 一、前言 有时候我们在项目中做一些长链路的跑批任务时,基于Springboot项目的定时任务,我们可以指定一个自定义的线程配…

无极低码:同时删除两张表中的记录

原始需求:删除两张表用户id为44的数据记录 删除user_info表中u_id为44的用户 DELETE FROM user_info WHERE u_id 44; 删除user_org_rel 表中u_id为44的用户 DELETE FROM user_org_rel WHERE u_id 44; 简便写法:用工mysql写法一次执行两张表删除 &…

深入理解WebSocket:实时双向通信的利器

一、介绍 1.1 基础概念介绍 单工通信:数据传输只允许在一个方向上传输,只能一方发送数据,另一方接收数据并发送。半双工:数据传输允许两个方向上的传输,但在同一时间内,只可以有一方发送或接收数据。全双…

SpringBoot集成Mysql

一、概述 Spring Boot是一个用于简化Spring应用开发的框架,它提供了很多默认配置,使得开发者能够快速地集成各种技术和组件,包括MySQL数据库。在Spring Boot中集成MySQL,我们通常会使用Spring Data JPA或MyBatis等持久层框架&…

Python中的全栈开发前端与后端的完美融合【第160篇—全栈开发】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python中的全栈开发:前端与后端的完美融合 全栈开发已成为当今软件开发领域中的…

代克斯特拉演算法C代码

代克斯特拉演&#xff08;Dijkstra&#xff09;算法是一个用于找出图中单源最短路径问题的算法。下面是一个使用C语言实现的Dijkstra算法的例子。这个例子假定图是以邻接矩阵的形式表示的&#xff0c;并且图中的边权重是非负的。 #include <stdio.h> #include <limit…