某商场在不同地点投放了5台自动售货机,编号为A、B、C、D、E,同时记录了2017年6月每台自动售货机的商品销售数据。为了了解各商品的销售情况,以二级类别进行分类,统计排名前5的商品类别销售额,并绘制漏斗图,同时根据商品销售数量、商品名称绘制词云图。(给出代码)
时间: 2024-06-18 11:04:42 浏览: 272
根据你的要求,需要进行以下几个步骤:
1. 数据清洗和整理
2. 统计各商品类别的销售额并排序,选择前5项
3. 绘制漏斗图
4. 统计商品销售数量和商品名称,绘制词云图
下面是一份Python代码,用于实现上述需求:
```python
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# 1. 数据清洗和整理
data = pd.read_csv('sales_data.csv') # 读取数据
data = data[['machine_id', 'product_category_lv2', 'order_amt']] # 选择需要的列
data = data.groupby(['machine_id', 'product_category_lv2']).sum().reset_index() # 按照自动售货机和商品类别进行汇总
data = data.sort_values(['order_amt'], ascending=False) # 按照销售额进行排序
# 2. 统计各商品类别的销售额并排序,选择前5项
top_5_categories = data.groupby(['product_category_lv2']).sum().reset_index().sort_values(['order_amt'], ascending=False).head(5)
# 3. 绘制漏斗图
plt.figure(figsize=(8, 6))
plt.barh(top_5_categories['product_category_lv2'], top_5_categories['order_amt'])
plt.gca().invert_yaxis() # 反转y轴,让排名靠前的商品类别在上面
plt.title('Top 5 Product Categories by Sales')
plt.xlabel('Sales Amount')
plt.ylabel('Product Category')
plt.show()
# 4. 统计商品销售数量和商品名称,绘制词云图
wordcloud_data = data.groupby(['product_category_lv2']).size().reset_index(name='counts') # 统计商品销售数量
wordcloud_text = ' '.join(list(data['product_category_lv2'])) # 将商品名称拼接成一个字符串
wordcloud = WordCloud(width=800, height=400, background_color='white').generate(wordcloud_text) # 生成词云图
plt.figure(figsize=(12, 8))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.title('Product Category Word Cloud')
plt.show()
```
需要注意的是,上述代码中的数据文件路径、以及词云图生成的参数等细节需要根据具体情况进行调整。
阅读全文