11 KiB
11 KiB
None
<html lang="en">
<head>
</head>
</html>
In [19]:
import pandas as pd
In [20]:
# 读取 Excel 文件中的商品销售数据
file_path = 'data/商品销售数据.csv'
try:
sales_data = pd.read_csv(file_path, encoding='gbk')
print("数据读取成功,数据基本信息:")
sales_data.info()
print("数据前几行信息:")
print(sales_data.head().to_csv(sep='\t', na_rep='nan'))
except FileNotFoundError:
print(
f"未找到文件 {file_path},请检查文件路径是否正确。")
In [21]:
# 按照二级类别分组并对实际金额列求和
category_sales = sales_data.groupby('二级类')['实际金额'].sum().reset_index()
print("各二级类别的销售额:")
print(category_sales)
In [22]:
# 对求和结果进行降序排序
category_sales = category_sales.sort_values(by='实际金额', ascending=False)
print("按销售额降序排序后的二级类别销售额:")
print(category_sales)
In [23]:
# 取排名前 5 的商品类别
top_5_category_sales = category_sales.head(5)
print("排名前 5 的商品类别销售额:")
print(top_5_category_sales)
In [24]:
# 统计商品销售数量
product_sales_quantity = sales_data.groupby('商品')['商品'].count().reset_index(name='销售数量')
print("各商品的销售数量:")
print(product_sales_quantity)
In [25]:
from pyecharts import options as opts
from pyecharts.charts import Funnel
# 提取排名前 5 的商品类别和对应的销售额
categories = top_5_category_sales['二级类'].tolist()
sales = top_5_category_sales[
'实际金额'].tolist()
# 创建漏斗图对象
funnel = (Funnel().add("商品类别销售额",
[list(z) for z in zip(categories, sales)],
label_opts=opts.LabelOpts(position="inside")).set_global_opts(
title_opts=opts.TitleOpts(title="排名前 5 的商品类别销售额漏斗图"),
toolbox_opts=opts.ToolboxOpts(is_show=True)))
# 渲染图表
funnel.render("./top_5_category_sales_funnel.html")
Out[25]:
In [26]:
from pyecharts import options as opts
from pyecharts.charts import WordCloud
# 提取商品名称和对应的销售数量
products = product_sales_quantity['商品'].tolist()
quantities = product_sales_quantity[
'销售数量'].tolist()
# 组合商品名称和销售数量
data = [list(z) for z in zip(products, quantities)]
# 创建词云图对象
wordcloud = (WordCloud().add("",
data,
word_size_range=[20, 100]).set_global_opts(
title_opts=opts.TitleOpts(title="商品销售数量词云图"),
toolbox_opts=opts.ToolboxOpts(is_show=True)))
# 渲染词云图
wordcloud.render("./product_sales_wordcloud.html")
Out[26]:
In [ ]: