过去 3 年同一周数字 Python Pandas 的滚动平均值



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

通用示例,未经过全面测试,您可以根据需要进行更新,请原谅语法/编译错误

# 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
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

最新更新