Python 数据分析:自动售货机销售数据可视化分析
统计新商品数据的数据类型
new_goods_data.dtypes
将购买数量列转换为整型
new_goods_data['购买数量'] = new_goods_data['购买数量'].astype(int)
按产品名称进行分组,统计销售量并按购买数量降序排列
num = new_goods_data.groupby('产品名称').agg(sum).sort_values('购买数量', ascending=False)
使用ggplot样式绘制水平条形图展示销售量排行榜前20的产品
plt.style.use('ggplot') plt.barh(range(20), num['购买数量'][:20]) plt.yticks(range(20), num.index[:20]) plt.ylabel('产品名称') plt.xlabel('销售量') plt.title('销售量排行榜(前二十)') plt.show()
3.1分析某一台设备不同时间的销售情况
ind = data2['设备编号'] == 112866 data_112 = data2.loc[ind, :]
输出data_112的形状和列名
data_112.shape data_112.columns
按日期分组,统计收入并按日期升序排列
data_112['date'] = data_112['下单时间'].dt.date data_112['income'] = data_112['总金额(元)'] - data_112['退款金额(元)'] num = data_112[['date', 'income']].groupby('date').sum().sort_index()
绘制折线图展示不同日期的销售情况
plt.plot(num.index, num) plt.xticks(num.index[::8], num.index[::8], rotation=90) plt.show()
按星期几分组,统计收入并按星期升序排列
data_112['weekday'] = data_112['下单时间'].dt.weekday num = data_112[['weekday', 'income']].groupby('weekday').sum().sort_index()
绘制折线图展示不同星期的销售情况
plt.plot(num.index, num) plt.xticks(num.index, num.index, rotation=90) plt.show()
按月份和星期几分组,统计收入并生成透视表
data_112['month'] = data_112['下单时间'].dt.month num = data_112[['weekday', 'income', 'month']].groupby(['month', 'weekday']).sum() num = num.unstack() # 最内层的行索引还原成了列索引 week = [0, 1, 2, 3, 4, 5, 6] num2 = num.loc[:, [('income', i) for i in week]]
绘制折线图展示不同月份不同星期的销售情况
for i in range(5, 10): plt.plot(week, num2.loc[i, :]) plt.legend([f'{i}月' for i in range(5, 10)]) plt.show()
分析某一台设备不同时间的销售情况
data_112['hour'] = data_112['下单时间'].dt.hour num = data_112[['hour','income']].groupby('hour').sum().sort_index()
绘制折线图展示不同小时的销售情况
plt.plot(num.index,num) plt.xticks(num.index,num.index,rotation=90) plt.show()
按月份和小时分组,统计收入并生成透视表
data_112['hour'] = data_112['下单时间'].dt.hour num = data_112[['hour','income','month']].groupby(['month','hour']).sum() num = num.unstack().fillna(0)
绘制折线图展示不同月份不同小时的销售情况
for i in range(5, 10): plt.plot(range(24), num.loc[i, :]) plt.legend([f'{i}月' for i in range(5, 10)]) plt.show()
按星期和小时分组,统计收入并生成透视表
data_112['hour'] = data_112['下单时间'].dt.
原文地址: https://www.cveoy.top/t/topic/jjSS 著作权归作者所有。请勿转载和采集!