-3

只要有可用数据(例如 201932),我就会使用 201632、201732 和 201832 的数据的平均值来查找同一周的平均值。示例:2019 年是年份,32 是周数

4

2 回答 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 回答