ZBLOG

mport pandas as pdinputfile = '../data/GoodsOrder.csv' # 输入的数据文件data = pd.read_csv(inputfile,encoding = 'gbk') # 读取数据group = data.groupby(['Goods']).count().reset_index() # 对商品进行分类汇总sorted=group.sort_values('id',ascending=False)print('销量排行前10商品...

这段代码使用了Pandas和Matplotlib库进行数据处理和可视化。下面是对代码的详细解释:

import pandas as pd

inputfile = '../data/GoodsOrder.csv'  # 输入的数据文件路径
data = pd.read_csv(inputfile, encoding='gbk')  # 读取数据,使用GBK编码方式

group = data.groupby(['Goods']).count().reset_index()  # 对商品进行分类汇总
sorted = group.sort_values('id', ascending=False)  # 根据销量对商品进行降序排序

print('销量排行前10商品的销量:\n', sorted[:10])  # 输出销量排行前10位热销商品

# 画条形图展示销量排行前10商品的销量
import matplotlib.pyplot as plt

x = sorted[:10]['Goods']  # 商品名称作为x轴数据
y = sorted[:10]['id']  # 销量作为y轴数据

plt.figure(figsize=(8, 4))  # 设置画布大小 
plt.barh(x, y)   # 水平条形图 

plt.rcParams['font.sans-serif'] = 'SimHei'   # 设置中文字体为黑体(SimHei)
plt.xlabel('销量')   # 设置x轴标题
plt.ylabel('商品类别')   # 设置y轴标题
plt.title('商品的销量TOP10')   # 设置标题

plt.savefig('../tmp/top10.png')   # 将图片以.png格式保存到指定路径
plt.show()   # 展示图片

# 计算销量排行前10商品的销售占比
data_nums = data.shape[0]  # 数据总行数
for index, row in sorted[:10].iterrows():
    print(row['Goods'], row['id'], row['id'] / data_nums)  # 输出商品名称、销量及其占比

此代码主要实现以下功能:

  1. 导入需要的库:pandas用于数据处理,matplotlib.pyplot用于绘制图表。
  2. 指定输入文件路径,并使用pd.read_csv()函数读取CSV文件到DataFrame对象。
  3. 使用groupby()函数按照’Goods’列对数据进行分组,并使用count()函数统计每个分组中的记录数。然后通过reset_index()将分组后的结果重新索引。
  4. 根据销量对商品进行降序排序,保存在变量sorted中。
  5. 打印销量排行前10位的热销商品。
  6. 绘制条形图展示销量排行前10位商品的销售情况。设置画布大小、绘制水平条形图、设置字体和标题等。
  7. 将绘制好的图表保存为PNG格式图片到指定路径下。
  8. 计算销量排行前10位商品的销售占比。遍历排序后的前10个商品记录,输出商品名称、销量以及其在总数据中所占比例。

希望这能帮助你理解这段代码的功能和逻辑。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=2230

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?