电子产品销售分析练习项目

读取数据

导入所需科学计算库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
# 忽略小警告
import warnings
warnings.filterwarnings('ignore')

读取数据

df = pd.read_csv('D:\数据分析相关笔记等\数据集\电子产品销售分析数据集\电子产品销售分析.csv')
df.head()
Unnamed: 0event_timeorder_idproduct_idcategory_idcategory_codebrandpriceuser_idagesexlocal
002020-04-24 11:50:39 UTC229435993205453698615159662235090899062.268105e+18electronics.tabletsamsung162.011.515916e+1824.0海南
112020-04-24 11:50:39 UTC229435993205453698615159662235090899062.268105e+18electronics.tabletsamsung162.011.515916e+1824.0海南
222020-04-24 14:37:43 UTC229444402405808622022739483190571836582.268105e+18electronics.audio.headphonehuawei77.521.515916e+1838.0北京
332020-04-24 14:37:43 UTC229444402405808622022739483190571836582.268105e+18electronics.audio.headphonehuawei77.521.515916e+1838.0北京
442020-04-24 19:16:21 UTC229458426315407423622739483168174244392.268105e+18NaNkarcher217.571.515916e+1832.0广东
df['event_time'].unique()

 

array(['2020-04-24 11:50:39 UTC', '2020-04-24 14:37:43 UTC',
       '2020-04-24 19:16:21 UTC', ..., '2020-11-21 10:10:01 UTC',
       '2020-11-21 10:10:13 UTC', '2020-11-21 10:10:30 UTC'], dtype=object)
df['age'].unique()
array([24., 38., 32., 20., 21., 16., 49., 43., 37., 27., 48., 47., 28.,
       41., 22., 18., 44., 50., 46., 25., 34., 45., 17., 30., 36., 35.,
       39., 19., 40., 33., 31., 42., 23., 29., 26.])

清洗数据

提取数据时,处理与业务流程不符合数据,售价为负

df[df['price'] < 0]

处理空值

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 564169 entries, 0 to 564168
Data columns (total 12 columns):
 #   Column         Non-Null Count   Dtype  
---  ------         --------------   -----  
 0   Unnamed: 0     564169 non-null  int64  
 1   event_time     564169 non-null  object 
 2   order_id       564169 non-null  int64  
 3   product_id     564169 non-null  int64  
 4   category_id    564169 non-null  float64
 5   category_code  434799 non-null  object 
 6   brand          536945 non-null  object 
 7   price          564169 non-null  float64
 8   user_id        564169 non-null  float64
 9   age            564169 non-null  float64
 10  sex            564169 non-null  object 
 11  local          564169 non-null  object 
dtypes: float64(4), int64(3), object(5)
memory usage: 51.7+ MB
df.isnull().sum()
Unnamed: 0            0
event_time            0
order_id              0
product_id            0
category_id           0
category_code    129370
brand             27224
price                 0
user_id               0
age                   0
sex                   0
local                 0
dtype: int64
# 删除含有空值的行
df = df.dropna(axis = 0, how = 'any')

处理数据类型

# 将'category_id', 'user_id', 'age'改为int64
df[['category_id', 'user_id', 'age']] = df[['category_id', 'user_id', 'age']].astype('int64')
df['event_time'] = pd.to_datetime(df['event_time'])
# 月
df['month'] = df['event_time'].dt.month
# 季
df['quater'] = df['event_time'].dt.to_period('Q') # 参数 M 表示月份,Q 表示季度,A 表示年度,D 表示按天
df.drop(df[df['quater'] == '1970Q1'].index, inplace=True) # 去除异常值
df.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 419890 entries, 0 to 564168
Data columns (total 14 columns):
 #   Column         Non-Null Count   Dtype              
---  ------         --------------   -----              
 0   Unnamed: 0     419890 non-null  int64              
 1   event_time     419890 non-null  datetime64[ns, UTC]
 2   order_id       419890 non-null  int64              
 3   product_id     419890 non-null  int64              
 4   category_id    419890 non-null  int64              
 5   category_code  419890 non-null  object             
 6   brand          419890 non-null  object             
 7   price          419890 non-null  float64            
 8   user_id        419890 non-null  int64              
 9   age            419890 non-null  int64              
 10  sex            419890 non-null  object             
 11  local          419890 non-null  object             
 12  month          419890 non-null  int64              
 13  quater         419890 non-null  period[Q-DEC]      
dtypes: datetime64[ns, UTC](1), float64(1), int64(7), object(4), period[Q-DEC](1)
memory usage: 48.1+ MB

处理年龄组

bins = [16, 20, 30, 40, 60]
labels = ['16-19', '20-29', '30-39', '40-60']
df['agegroup'] = pd.cut(df['age'], bins, right = False, labels = labels)

查看数据

df.describe()
Unnamed: 0order_idproduct_idcategory_idpriceuser_idagemonth
count4.198900e+054.198900e+054.198900e+054.198900e+05419890.0000004.198900e+05419890.000000419890.000000
mean1.799809e+062.370509e+181.676753e+182.274301e+18254.2816191.515916e+1833.1440697.754607
std7.529273e+052.014144e+163.171234e+172.438523e+16321.1676132.372070e+0710.1198002.448404
min0.000000e+002.294360e+181.515966e+182.268105e+180.0000001.515916e+1816.0000001.000000
25%1.669817e+062.354505e+181.515966e+182.268105e+1839.3300001.515916e+1824.0000007.000000
50%1.854132e+062.375487e+181.515966e+182.268105e+18138.8700001.515916e+1833.0000008.000000
75%2.463694e+062.388441e+181.515966e+182.268105e+18347.2000001.515916e+1842.00000010.000000
max2.633520e+062.388441e+182.388434e+182.374499e+1811574.0500001.515916e+1850.00000011.000000

price的均值在254.28元,中位数在138.87元,可能存在极值影响 年龄的平均值、中位数均在33岁,说明该数据服从正态分布或近似正态分布

数据分析

查看全年销售额的增长率

# 销售额数据分组汇总
sales_month = df.groupby(['month'])['price'].sum()
# 计算2-11月销售增长率
sales_rate_2 = sales_month[2] / sales_month[1] - 1
sales_rate_3 = sales_month[3] / sales_month[2] - 1
sales_rate_4 = sales_month[4] / sales_month[3] - 1
sales_rate_5 = sales_month[5] / sales_month[4] - 1
sales_rate_6 = sales_month[6] / sales_month[5] - 1
sales_rate_7 = sales_month[7] / sales_month[6] - 1
sales_rate_8 = sales_month[8] / sales_month[7] - 1
sales_rate_9 = sales_month[9] / sales_month[8] - 1
sales_rate_10 = sales_month[10] / sales_month[9] - 1
sales_rate_11 = sales_month[11] / sales_month[10] - 1
# 设置2-11月的增长率标签
sales_rate_2_label = '%.2f%%' % (sales_rate_2 * 100)
sales_rate_3_label = '%.2f%%' % (sales_rate_3 * 100)
sales_rate_4_label = '%.2f%%' % (sales_rate_4 * 100)
sales_rate_5_label = '%.2f%%' % (sales_rate_5 * 100)
sales_rate_6_label = '%.2f%%' % (sales_rate_6 * 100)
sales_rate_7_label = '%.2f%%' % (sales_rate_7 * 100)
sales_rate_8_label = '%.2f%%' % (sales_rate_8 * 100)
sales_rate_9_label = '%.2f%%' % (sales_rate_9 * 100)
sales_rate_10_label = '%.2f%%' % (sales_rate_10 * 100)
sales_rate_11_label = '%.2f%%' % (sales_rate_11 * 100)
# 将1-11月的销售额以及增长率转换为DataFrame
sales = pd.DataFrame({
    'sales_month':sales_month,
    'sales_rate':[0, sales_rate_2, sales_rate_3, sales_rate_4, sales_rate_5, sales_rate_6, 
                  sales_rate_7, sales_rate_8, sales_rate_9, sales_rate_10, sales_rate_11],
    'sales_rate_label':['0.00%', sales_rate_2_label, sales_rate_3_label, sales_rate_4_label, 
                        sales_rate_5_label, sales_rate_6_label, sales_rate_7_label, 
                        sales_rate_8_label, sales_rate_9_label, sales_rate_10_label, sales_rate_11_label]
})
# 绘制图形
from matplotlib import ticker
# 设置中文字符
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
# 设置背景样式
plt.style.use('ggplot')
# x轴数据
x = ['{}月'.format(values) for values in sales.index.tolist()]
# y轴数据
y1 = sales['sales_month']
y2 = sales['sales_rate']
# 创建画布
fig = plt.figure(figsize = (20, 8), dpi = 80)
ax1 = fig.add_subplot(111)
ax2 = ax1.twinx()
# 绘制图形
ax1.bar(x, y1, color = 'pink', label = '销售额')
ax2.plot(x, y2, color = 'black',marker = '*', label = '增长率')
ax1.set_xticks(x)
ax1.set_ylim(0, 30000000)
ax2.yaxis.set_major_formatter(ticker.PercentFormatter(xmax=1, decimals=1))
ax1.set_xlabel('月份')
ax1.set_ylabel('销售额')
ax2.set_ylabel('增长率')
ax1.set_title("销售额与增长率")
plt.legend()
plt.show()

各省销售情况

各省销售占比

# 按省分类
sales_area = df.groupby('local')['price'].sum()
# 绘图
sales_area.plot(figsize=(20,8),kind = 'pie',autopct='%1.1f%%',title='2020年总销售额占比')
# # 准备数据
# labels = sales_area.index
# size = sales_area.values
# # 设置画布
# plt.figure(figsize = (20, 8), dpi = 80)
# # 饼图属性
# plt.pie(size, labels = labels, autopct = '%.2f%%')
# # 长宽更改
# plt.axis('equal')
# plt.title('2020年总销售额占比', fontsize='x-large')
# plt.legend()
plt.show()

# 各地区每一年的销售额
month_sales_area = df.groupby(by=['local','month'])['price'].sum()
# 将分组后的多层索引转换为列数据
month_sales_area = month_sales_area.reset_index(level=[0, 1])
# 使用数据透视表重新整理数据
month_sales_area = pd.pivot_table(month_sales_area, 
                                  index='local', 
                                  columns='month', 
                                  values='price')
# 绘制图形
month_sales_area.plot(figsize=(20, 8), kind='bar', title='2020年不同省份销售额对比')
plt.show()

各省8月份的销售额均大于其他月份,说明在8月份消费者更容易消费

前四个月的销售额很低迷,商家应针对不同月份退出不同优惠活动

各省份不同类别产品销售比

# 各省份不同类型产品的销售额
category_sales_area = df.groupby(by = ['local','category_code'])['price'].sum().reset_index().sort_values('price',ascending = False).head(50)
category_sales_area = category_sales_area.groupby(by=['local','category_code'])['price'].sum()
# 将分组后的多层索引设置为列数据
category_sales_area = category_sales_area.reset_index()
# 数据透视表整理数据
category_sales_area = pd.pivot_table(category_sales_area,
                                    index='local',
                                    columns='category_code',
                                    values='price')
# 绘制图形
category_sales_area.plot(figsize=(20, 8), kind ='bar', title='不同类别产品T50在各省份销售对比')
plt.show()

yhlauvchuchu
关注 关注
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
48 | 电子产品销售分析
微信号:RunsenLiu
08-14 319
Unnamed: 行号event_time:下单时间order_id:订单编号product_id:产品标号category_id :类别编号category_code :类别brand :品牌price :价格user_id :用户编号age :年龄sex :性别local:省份。
电子产品销售分析
m0_72443764的博客
08-22 1007
一、背景和目的 通过分析电子产品销售数据,探索产品的具体销售情况,了解产品需求和受欢迎度,实现更加精细精准化运营,使业务更好地增长。 二、数据集简介 数据来源:和鲸社区数据集——电子产品销售分析,本数据包含了有关日期、订单、销售额等信息,一共564169行,12列。 数据字段介绍: 三、分析框架与思路 四、数据清洗 (一)导入和读取数据 1、创建并使用数据库 2、导入并读取数据 创建表,名为sales 导入数据文件——电子产品销售分析: 一共564169行,12列。
电子产品销售数据分析
weixin_44052130的博客
05-01 439
event_time -购买时间order_id -订单编号product_id -产品编号category_id -产品的类别IDcategory_code -产品的类别分类法(代码名称)brand -品牌名称price -产品价格user_id -用户ID。
电子产品销售数据分析及RFM用户价值分析
miracle2me的专栏
11-29 5034
目录 项目背景 实战案例 1 读取数据 1.1字段解析 1.2数据基础信息查看 1.3数据存储最小格式 2数据清洗 2.1查看缺失值比例 合成新列:buy_count 合成新列:购买总金额(GMV) 2.3检测异常值 2.3.1转化id数据格式 2.3.2检查price,age是否有异常值 2.3.3 其他字段是否有异常值 3数据探索性分析(EDA) 3.1总览 3.1.1总成交金额GMV 3.1.2月成交金额G...
某在线商店电子产品销售数据可视化分析
YPS的博客
10-11 3887
一、项目背景 目的:通过分析销售数据可以帮助商家了解在线销售业务的消费情况,进而分析顾客消费数据来分析顾客的消费行为和顾客特征,更好的为用户推荐相匹配的商品。 工具:Python、PowerBi 数据来源:https://www.heywhale.com/mw/project/60ceb85d056f570017c0ae42/dataset 字段说明: event_time -购买时间 order_id -订单编号 product_id -产品编号 category_id -产品的类别ID category
基于Python电子产品销售数据可视化分析 (大数据专业毕设)
最新发布
01-02 1786
本研究的目的是利用Python编程语言对电子产品销售数据进行可视化分析。通过对电子产品销售数据的可视化分析,可以更好地理解电子产品市场的发展趋势、消费者行为以及销售策略的有效性,并为相关业务决策提供科学依据。
某在线商店电子产品销售数据分析-RFM分析方法
weixin_43822124的博客
03-03 1427
本文github地址:DataSicence 数据下载链接:链接 本文参考资料:链接 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns #seaborn绘图包需要时最新版本 数据读取 event_time -购买时间 order_id -订单编号 product_id -产品编号 category_id -产品的类别ID category_code -产品的类.
项目11电子商务的典型应用.ppt
11-12
网上保险是指保险公司或新型的网上保险中介机构运用信息技术,尤其是互联网作为主要销售渠道,来进行保险产品的推广、销售以及客户服务等活动。这种模式既包括通过互联网进行的直接交易,也涵盖了利用网络技术进行...
电子商务数据分析教学大纲.pdf
05-24
* 项目管理:学生应能够管理项目,进行数据分析和思考 * 终身学习:学生应能够终身学习,掌握新的数据分析技术和方法 课程教学内容 * 章节一:电子商务运营与数据分析 + 了解电子商务的功能、模式和特点 + 了解...
电子产品销售分析.zip
12-12
数据来源:电子产品销售分析.csv 该文件包含2020年4月至202011月从大型家用电器和电子产品在线商店购买的数据 1、销售金额、订单量、消费人数、客单价在清明小长假、五一小长假、暑假、开学季、十一小长假,几个假期节点表现不错,尤其是开学季的情况最好,在几个关键的节点开始前,店铺一定要提前储备库存,保证货源。 2、北上广销售金额、订单量、消费人数、客单价都优于其他省份,湖南省消费人数少,但是客单价、订单量都表现优异,湖南省潜力巨大,因此要加大对湖南省的宣传力度,增加湖南省的消费人数。 3、75%的消费人群购买力不高,对30岁以下的人群主要推荐亲民价格的商品。 4、40-50岁的人群购买力高,而且男性对高价格的商品购买力强,因此给40-50岁的男性推荐高价格的商品,对女性推荐较高价格的商品。 5、多数用户至少消费了两次,且消费金额与购物次数有较强的正相关,用户消费次数越多销售额越大。可在8天、28天对用户进行召回,引导客户消费。 6、订单集中在早晨,8点到13点是消费高峰期,这段时间要注意维持好网站的稳定性。 7、店铺可以在1-4月份减少营业人员,5-11月增加营业人员,应对销售高峰期
电商运营销售数据分析表.xlsx
09-22
电商运营销售数据分析表.xlsx电商运营销售数据分析表.xlsx电商运营销售数据分析表.xlsx电商运营销售数据分析表.xlsx电商运营销售数据分析表.xlsx
电子商务概论课后练习题答案项目1-9全.docx
04-14
电子商务概论课后练习题答案项目1-9全 电子商务概论课后练习题答案项目1-9全是电子商务领域的重要参考资料,涵盖了电子商务的基本概念、模式、技术和应用等方面的知识点。本文将对该项目的标题、描述、标签和部分...
电子商务练习题一.docx
06-30
**网络营销客体**是指开展网络营销活动的对象,选项C“开展网络营销活动的标的物”正确,它可能包括产品、服务或任何可供销售项目。 **中国互联网络信息中心的英文缩写**是CNNIC,全称China Internet Network ...
第1章电子商务案例分析概述.pptx
09-21
《电子商务案例分析概述》是针对电子商务领域的一门课程,旨在通过深入分析具体案例,帮助学生理解和掌握电子商务的各种模式,提升项目策划和运营能力。课程主要包括以下几个核心知识点: 1. **电子商务模式**:...
Python电子产品销售数据分析报告及RFM模型(四)
程志伟的博客
08-19 906
关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 #6.4.1结论先行 ''' 广东、上海、北京的销售额、销量以及客户数量都是最高的 销售额与销量1-8月呈上升趋势,但是8月份之后就开始下降 618和双十一活动效果基本没有得到有效的回报,复盘一下618与双十一活动的内容。 销售额与销量在5月、7月、8月有均有上升,这三个月的新客户都有增长,幅度也不少,证明拉新活动效果不错;9月份下降,加上9月份的新客户下跌,还有9月份下订单的客户也减少了(其中新客下单的数量减少了四分之三,老..
【数据挖掘】电商数据合集
热门推荐
浪荡子爱自由的博客
03-01 1万+
Amazonproduct co-purchasing network https://www.heywhale.com/mw/dataset/5a698cdeafceb51770d610b4 女性用户网购服装反馈数据集 https://www.heywhale.com/mw/dataset/5aab7e09afaabd5e93e4df30 该数据集包含23000个顾客的网购评论及评价,基于真实的消费记录 ZARAUR 优衣库👔👔服装销售数据 https://www.heywhale.com/m
Python数据分析_电商数据分析报告
LCS198903的博客
05-25 3704
#导入第三方库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import datetime import warnings import re from datetime import datetime from pyecharts.charts import Bar,Line,Map,Page,Pie from pyecharts import options as opts from pyechar
电子商务案例分析练习题解析.docx
02-10
电子商务案例分析练习题解析.docx

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 使用matplotlib绘制基本图像 1155
  • 电子产品销售分析练习项目 1091

最新评论

  • 使用matplotlib绘制基本图像

    CSDN-Ada助手: Python入门 技能树或许可以帮到你:https://edu.csdn.net/skill/python?utm_source=AI_act_python

大家在看

  • Cisco 路由重发布 —— 实现路由信息在不同路由选择域间的传递
  • JAVA小白学习日记Day5
  • JAVA面向对象03
  • Self-Supervised Learning for Point Clouds Data: A Survey 870
  • 编程的法则 迪米特法则(Law of Demeter)也称为“最少知识原则(Principle of Least Knowledge)包括如何实践

最新文章

  • 使用matplotlib绘制基本图像
2022年2篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

PHP网站源码塘坑SEO按效果付费同乐百度关键词包年推广坂田网络营销大鹏英文网站建设丹竹头网站推广方案石岩网站设计模板福永网站优化按天扣费罗湖至尊标王大鹏优化福田高端网站设计深圳优化南联标王沙井网站排名优化南联SEO按天收费同乐网站定制光明百搜词包双龙如何制作网站大浪网站推广工具爱联网站推广工具福田关键词排名南澳设计公司网站平湖网站开发惠州企业网站设计大运网页设计松岗网站改版双龙网站seo优化惠州模板制作坪山设计公司网站布吉关键词排名包年推广荷坳设计公司网站歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化