机器学习每周挑战——百思买数据

server/2024/9/24 7:42:10/

最近由于比赛,断更了好久,从五一开始不会再断更了。这个每周挑战我分析的较为简单,有兴趣的可以将数据集下载下来试着分析一下,又不会的我们可以讨论一下。

这是数据集:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from pyecharts.charts import Bar
import plotly.express as pxdf = pd.read_csv("Best Buy products.csv")
pd.set_option("display.max_columns",1000)
pd.set_option("display.max_rows",1000)

先导入我们所需要用到的库,然后分析数据集

# \字段   说明
# url   链接
# product_id    产品ID
# title 标题
# images    图片链接
# final_price   最终价格
# currency  货币
# discount  折扣
# initial_price 初始价格
# offer_price   促销价格
# root_category 品类
# breadcrumbs   导航栏
# release_date  发布日期
# esrb_rating   ESRB评级("E for Everyone"(适合所有人)、"T for Teen"(适合青少年)、"M for Mature"(适合成年人)等等)
# rating    评分
# reviews_count 评价数量
# questions_count   提问数量
# hot_offer 优惠
# open_box  打开过但未使用的商品(这些商品通常是退货、展示品或者被取消订单的商品。虽然它们可能已经被打开过,但它们通常处于完好状态,并且经过了检查和测试以确保其功能正常。这些商品通常以更低的价格销售,因为它们已经不再是全新的商品,但仍然提供一定程度的折扣。)
# availability  商品可用性(即该商品当前是否可供购买:有货;库存有限;缺货;即将上市;预购)
# you_maight_also_need  你可能还需要
# variations    产品配置选项
# highlights    产品亮点
# product_description   产品描述
# features_summary  功能总结
# features  功能特性
# whats_included    包含的配件
# q_a   用户问答
# product_specifications    产品参数
# amount_of_stars   获得的星数
# customer_images   用户提供的照片
# customers_ultimately_bought   用户最终下单的产品
# deals_on_realated_items   相关其他商品的优惠或特价优惠
# frequently_bought_with    通常一起搭配购买的产品
# recommend_percentage  推荐指数

上面是关于字段的说明,由于这种数据属于电商类型的数据,我们一般会分析评分,折扣,成交价格等特征与交易数量之间的关系,我们还可以从用户回答来做文本分析等来分析商品的好坏,预测交易数量等,这里我就不进行分析了,感兴趣的可以试一试,我后面会更新电商评论的文本类型的分析。

# 促销策略分析
df['final_price'] = df['final_price'].str.replace('$','').str.replace(',','').astype(float)
df['discount'] = df['discount'].str.replace('Save','').str.replace(',','').str.replace('$','').astype(float)
df['discount'] = df['discount'].fillna(0)# print(df.info())
plt.figure(figsize=(10,8))
final_price = df['final_price'].value_counts().reset_index()
plt.bar(final_price['final_price'][10], final_price['count'][10], color='red', label='final_price')plt.figure(figsize=(10,8))
discount_price = df['discount'].value_counts().reset_index()
plt.plot(discount_price['discount'], discount_price['count'], color='blue', label='discount_price')bin = [0,1,2,3,4,5]
label = [1,2,3,4,5]
df['rating'] = pd.cut(df['rating'],bins=bin,labels=label)
sns.countplot(x=df['rating'],color='Blue',dodge=False)
plt.title("评分数据")
plt.tight_layout()
plt.show()root_category_counts = df['root_category'].value_counts().reset_index()
# print(root_category_counts)
fig = px.bar(root_category_counts,x='count', y='root_category',orientation='h',title='产品分类排行榜',labels={'count': '数量', 'root_category': '种类名称'})
fig.update_layout(yaxis_categoryorder='total ascending')  # 将类别按产品数量升序排列
# 更新字体样式
fig.update_layout(template="plotly_white",font=dict(size=14,color="#000000")
)
fig.show()

这里我绘制了折扣和评分之间的关系图,从上面可以看出好的商品是不打折的,就像旭旭宝宝带的货,只便宜一块钱。最后我绘制了各个商品的销售数据。

 

 

 这篇每周挑战确实简陋了不少,大家如果对电商数据比较感兴趣,后面我在完善一下这篇文章


http://www.ppmy.cn/server/27950.html

相关文章

帮助 Python 用户构建 CLI 界面:直观易写、简单高效 | 开源日报 No.240

tiangolo/typer Stars: 13.7k License: MIT typer 是一个构建出色命令行界面(CLI)的库,基于 Python 类型提示。它旨在让开发者轻松创建用户喜欢使用的 CLI 应用程序。其主要功能和核心优势包括: 直观易写:强大编辑器…

Spring Data JPA数据批量插入、批量更新真的用对了吗

Spring Data JPA系列 1、SpringBoot集成JPA及基本使用 2、Spring Data JPA Criteria查询、部分字段查询 3、Spring Data JPA数据批量插入、批量更新真的用对了吗 前言 在前两篇文章已经介绍过,在使用Spring Data JPA时,DAO层的Respository通过继承J…

unix 命令总结

一、unix 命令总结 1.文件传输 rz/sz to transfer files sz filename // remote host 下载到本地 rz // 本地上传得到host 2.shell 后台运行,进程独立存在,不属于当前终端的子进程 https://www.cnblogs.com/chinas/p/7130378.html 3. 执行.…

2024五一杯数学建模竞赛A题完整成品论文和代码分析:建立钢板切割的工艺路径动态规划、贪心与分层优化模型

2024五一杯数学建模竞赛A题:建立钢板切割的工艺路径动态规划、贪心与分层优化模型 2024五一数学建模A题完整代码和成品论文获取↓↓↓↓↓ https://www.yuque.com/u42168770/qv6z0d/gyoz9ou5upvkv6nx?singleDoc# 本文文章较长,建议先目录。经过不懈的…

mysql如何优化

explain id:序列号,越大优先级越高,相同从上往下执行 null最后执行 select_type简单simple 复杂的查询:primary subquery derived union table:表 type:null > system > const > eq_ref > ref > range > index &…

python按时间分割日志

背景介绍 现在的项目都是RotatingFileHandler,指定每个文件大小,指定日志文件的份数。有一个缺点就是要看某一天的日志,需要把这一天之前的最后一份日志和这一天之后的第一份日志都拷贝下来,很多不是自己想要的内容。 需求 想要一个按时间,最好能按天分割日志。查看Pyth…

Daz Install Manager 安装daz表情包 表情动画

当然可以!以下是关于使用 Daz Install Manager (DIM) 安装插件的入门教程: 第一步:安装 Daz Install Manager (DIM) 从官方网站下载 Daz Install Manager (DIM) 安装程序。运行安装程序,按照提示完成安装。通常建议保持默认安装…

树莓派点亮LED灯

简介 使用GPIO Zero library 的 Python库实现点亮LED灯。接线 树莓派引脚参考图如下: LED正极 接GPIO17 LED负极 接GND 权限 将你的用户加到gpio组中, 否则无法控制GPIO sudo usermod -a -G gpio 代码 from gpiozero import LED from time impor…