【发布时间】:2022-01-08 20:41:08
【问题描述】:
这是我第一次在这里发帖,希望我做得对。我已经在论坛中搜索了我的问题,即使有相关主题,也没有人解决我的具体问题,所以我希望你能帮助我。
我有一个包含两列简化的数据框,如下所示:
Date Value
0 20010425 1
1 20010112 4
2 20010308 3
3 20010527 5
4 20010620 2
第一列以 yyyymmdd 格式表示日期,但为 int64。 现在我想创建一个额外的列,它为每一行分别取前 3 个月的值的平均值:
Date Value Mean_Value_past_3_months
0 20010425 1 3.5 #(4+3)/2
1 20010130 4 NaN # since no date earlier than 20010130 is available
2 20010308 3 4
3 20010527 5 2 # (1+3)/2
4 20010620 2 3 # (1+5)/2
然后我想删除 NaN,所以它不计算它们向前移动。
我尝试转置日期然后做,这是我在这里找到的:
s = subset.columns[0:].values < df.values[:,None]
df['mean'] = (subset.iloc[:,0:]*t).mean(1)
但它 a) 它还不能工作,并且 b) 不包括 3 个月的期限。
感谢您的帮助!!
【问题讨论】: