我有一个每日销售数据框
我想创建一个KPI,以了解周末销售如何影响每周销售,以及正常工作日如何影响每周销售
我创建了一个工作代码,作为下面的示例,它是有效的
但是:
2)(第二个小问题)如果是销售过低的银行假日或销售过高的特殊假日,我应该用平均值或中值替换这些异常值吗
#Generating a Random Sample
np.random.seed(30)
values=np.random.randint(0,400,14)
day= pd.date_range(start='25/02/2020',periods=14)
#Creating an example DataFrame
df_input={'date':day,"values":values}
df_test=pd.DataFrame(df_input)
#From here starts what I have done on my original code
# week and day of the week are two informatio that I have to retrieve from my
#original DataFrame
#Creating a column with Week and Day Of The Week info
df_test['week']=df_test.date.dt.week
df_test['day']=df_test.date.dt.dayofweek
#Creating a Column for differencing weekend from normal day
df_test['weekend']=np.zeros(len(df_test))
df_test['weekend'][(df_test.day==5)|(df_test.day==6)]=1
#Grouping on Week to get total sales
grouped_full=df_test.groupby(['week']).sum()
#Grouping on Week And Weekend to separate normal days from weekend days
grouped=df_test.groupby(['week','weekend']).sum()
#Getting the ratio between
#the weekend and total weekly sales
#normal days and total weekly sales
ratio=grouped/grouped_full
print(ratio['values'])
这是我的输出:
week weekend
9 0.0 0.666667
1.0 0.333333
10 0.0 0.784127
1.0 0.215873
11 0.0 1.000000
嗨,我很想评论一下乌克兰哔叽布的回答,但最终由于50分的声誉规则,这是不可能的,但我不在乎,我无论如何都想做出贡献
我想指出,从技术上讲,你的回答只回答了问题的后半部分:
事实上,通过对同一周数进行分组,我们创建的KPI具有工作日的因果关系>;相反,我们应该使用:
为了找到周末>;工作日因果关系
我花了一些时间试图真正理解你是如何处理这个问题的,以及是否有其他方法来看待这个问题
无论如何,我都不是专业人士,所以对这一切都要三思而后行:
.mean()
(正如您在我的代码中看到的那样)而不是.sum()
查找平均销售额中的比率差异李>问题1
可能的替代方案
问题2
很难说,这取决于分析的类型、你所做的假设、你有多少数据、异常值的规模等等。
异常值通常是重要的数字,而不仅仅是需要平滑处理的值。
圣诞节一周可以提供某种产品年销售额的20%。那一周只是个例外吗
相关问题 更多 >
编程相关推荐