只要有可用数据(例如 201932),我就会使用 201632、201732 和 201832 的数据的平均值来查找同一周的平均值。示例:2019 年是年份,32 是周数
问问题
904 次
2 回答
0
通用示例,未完全测试,您可以根据需要进行更新,请原谅语法/编译错误
# 1 load your data here
myYearlyWeekAvgList = [[Calendar, WkNumber, France, 0, 201538], [....]]
# 2 initialize variables here
totalSum = 0
movingAves = 0 # track total for that yr
myYear = currentYear # input, for e.g. 2018
# 3 start totals & averages here
for i, x in enumerate(myYearlyWeekAvgList, 1):
T = x[i] # get each row
if x == currentYear # for e.g. if yr is 2018, then sum value
totalSum.append(T[3]) # your revenue in 3rd col I guess
moving_ave = totalSum/i # your average for that col
于 2019-04-14T22:31:18.020 回答
0
import pandas as pd
import datetime as datetime
df['Calender Week'] = pd.to_datetime(df['Calender Week'] + '-0', format = '%Y%W-%w')
df.groupby([df['C'], df['Calender Week'].dt.week])['Revenue'].mean()
这可以满足您的需求。首先,您必须将“日历周”列更改为日期时间。在转换中,我必须添加一个“-0”才能正确转换。它所做的只是决定一周是从星期日还是星期一开始,这在我们的例子中并不重要。
在第二行中,我们使用 groupby。我们按国家分组,实际的日历周(1 到 52)由 表示.dt.week
。我们看一下收入列,最后取平均值。
我随机创建的测试数据的结果如下所示:
C Calender Week
France 50 16.50
51 25.00
52 30.00
USA 50 14.00
51 13.25
52 30.50
于 2019-04-14T23:06:36.280 回答