【发布时间】:2020-09-09 21:43:35
【问题描述】:
我有一个销售时间序列数据框,我需要计算一周中每一天的平均销售份额。下面是我想要的一个例子:
-
df1:销售时间序列数据框。 -
share_sales_week_of_day- 想要 DataFrame。对于星期一,我计算了实际价值。这里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]})
你能解释一下我如何计算整个数据的份额....
【问题讨论】:
-
1) 在您计算出星期几是什么日期(“星期一”、“星期二”等)之前,您需要首先将日期从 strings(如
'2011-01-31')转换为实际的 datetimes。 pandas 中有什么功能可以做到这一点?当您阅读 pandas 文档时,它告诉您什么? -
2) 然后,将索引转换为日期时间后,请参阅Get weekday/day-of-week for Datetime column of DataFrame
-
3) 然后,哪个 pandas 函数会将
date,sales条目的(“长格式”)数据帧转换为 table 其中 day -of-week 在列中,条目是每天sales值的总和(聚合)?同样,pandas 文档告诉你什么?