首先读取数据文件,并将 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()

结果如下图所示:

Holiday Impact

从图中可以看出,春节和国庆节对订单数量的影响比较明显,其他节假日的影响相对较小。

2016 年节假日对订单数量的影响分析 - 数据可视化

原文地址: https://www.cveoy.top/t/topic/nGWk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录