python - 计算一周中每一天的平均销售额份额
问题描述
我有一个销售时间序列数据框,我需要计算一周中每一天的平均销售份额。下面是我想要的一个例子:
df1
:销售的时间序列数据框。share_sales_week_of_day
- 想要数据框。对于星期一,我计算了实际价值。这里28
和42
= 来自数据框的每周总销售额,1
以及8
= 星期一的销售额。
代码:
df1 = pd.DataFrame(index = ['2011-01-31', '2011-02-01', '2011-02-01', '2011-02-02', '2011-02-03', '2011-02-04', '2011-02-05', '2011-02-06', '2011-02-07', '2011-02-08', '2011-02-09', '2011-02-10', '2011-02-11', '2011-02-12'],
data = [1,2,3,4,5,6,7, 8,8,8,3,4,5,6], columns = ['sales'])
share_sales_week_of_day = pd.DataFrame(data = {'d_1' : [0.5*(1.0/28 + 8.0/42)],'d_2' : [0], 'd_3' : [0], 'd_4' : [0], 'd_5' : [0], 'd_6' : [0], 'd_7' : [0]})
你能解释一下我如何计算整个数据的份额....
解决方案
让我们做pd.crosstab
df.index=pd.to_datetime(df.index)
s=pd.crosstab(index=df1.index.strftime('%U'),columns=df1.index.weekday,values=df1.sales.values,aggfunc='sum',normalize='index').mean()
col_0
0 0.113095
1 0.184524
2 0.107143
3 0.136905
4 0.166667
5 0.196429
6 0.095238
dtype: float64
s.to_frame().T
col_0 0 1 2 3 4 5 6
0 0.113095 0.184524 0.107143 0.136905 0.166667 0.196429 0.095238
推荐阅读
- sql - 如果特定 ID 的所有行在特定列中都有值,如何增加计数
- python - 遍历两个列表的列表理解没有按预期工作
- python - 将文件压缩到内存并以字节 python 读取整个存档
- git - Git:仅在当前目录中忽略文件名
- google-cloud-platform - BigQuery 是否适合小型数据集?
- tfs - 在 Visual Studio 中退出 TFS 而不会导致问题
- gcc - 获取链接器映射文件中的变量地址
- python - 检查输入时出错:预期 conv2d_1_input 的形状为 (64, 64, 3) 但得到的数组的形状为 (64, 64, 4)
- c - 如何捕捉文件模式?
- c++ - MSVC 需要带有矢量和映射的显式默认移动构造函数