2016 年节假日对订单数量的影响分析 - 数据可视化
首先读取数据文件,并将 order_date 转化为 datetime 类型:
import pandas as pd
df = pd.read_csv('processed_order_train1.csv')
df['order_date'] = pd.to_datetime(df['order_date'])
接着,我们需要筛选出 2016 年的法定节假日。根据国务院办公厅发布的《2016 年部分节假日安排》规定,2016 年有 3 个法定节假日,分别是元旦节、春节和国庆节。我们可以手动创建一个包含这些节假日的列表:
holidays = ['2016-01-01', '2016-02-07', '2016-02-08', '2016-02-09', '2016-02-10', '2016-02-11', '2016-02-12', '2016-02-13', '2016-04-04', '2016-05-01', '2016-06-09', '2016-06-10', '2016-06-11', '2016-09-15', '2016-09-16', '2016-09-17', '2016-10-01', '2016-10-02', '2016-10-03', '2016-10-04', '2016-10-05', '2016-10-06', '2016-10-07']
我们可以使用 apply 函数,将每个订单的日期转化为节假日名称:
def is_holiday(date):
if date.strftime('%Y-%m-%d') in holidays:
return 'holiday'
else:
return date.strftime('%Y-%m-%d')
df['holiday'] = df['order_date'].apply(is_holiday)
这里我们使用 strftime 函数将日期格式化为字符串,再判断是否在节假日列表中。如果在,则返回 'holiday' 字符串,否则返回原日期字符串。
接下来,我们可以使用 groupby 函数,按照节假日名称将订单数量进行求和:
holiday_qty = df.groupby('holiday')['ord_qty'].sum()
最后,我们可以使用 matplotlib 库,绘制折线图:
import matplotlib.pyplot as plt
plt.plot(holiday_qty.index, holiday_qty.values)
plt.xticks(rotation=45)
plt.xlabel('Holiday')
plt.ylabel('Order Quantity')
plt.title('Impact of Holidays on Order Quantity in 2016')
plt.show()
结果如下图所示:

从图中可以看出,春节和国庆节对订单数量的影响比较明显,其他节假日的影响相对较小。
原文地址: https://www.cveoy.top/t/topic/nGWk 著作权归作者所有。请勿转载和采集!