python - 如何根据之前的平均 X 行创建特征?
问题描述
我有一个包含多年数据和许多功能的数据框。
对于这些功能中的每一个,我都想创建一个新功能来平均过去 12 周的数据。
所以说我有每周数据。我想要一个 feature1B 的数据点给我来自 feature1A 的最后 12 行数据的平均值。如果数据是每小时的,我希望对最后 2016 行(24 小时 * 7 天 * 12 周)做同样的事情
例如,假设数据如下所示:
Week Feature1
1 8846
2 2497
3 1987
4 5294
5 2487
6 1981
7 8973
8 9873
9 8345
10 5481
11 4381
12 8463
13 7318
14 8642
15 4181
16 3871
17 7919
18 2468
19 4981
20 9871
我需要代码来遍历多个特征,创建一个特征名称,例如“目标”。+特征并根据我的标准吐出平均数据(最后 12 行......最后 2016 行......取决于格式) .
Week Feature1 Feature1-B
1 8846
2 2497
3 1987
4 5294
5 2487
6 1981
7 8973
8 9873
9 8345
10 5481
11 4381
12 8463
13 7318 5717.333333
14 8642 5590
15 4181 6102.083333
16 3871 6284.916667
17 7919 6166.333333
18 2468 6619
19 4981 6659.583333
20 9871 6326.916667
感谢任何帮助。
解决方案
解决了 Chris A 的有用评论。似乎无法将该评论标记为答案。
import pandas as pd
df = pd.read_csv('data.csv')
cols = df.iloc[:,2:].columns
for c in cols:
df['12W_AVG.'+c] = df[c].rolling(2016).mean()
df['12W_AVG.'+c] = df['12W_AVG.'+c].fillna(df['12W_AVG.'+c][2015])
df['12W_AVG.'+c+'_LAL'] = df['12W_AVG.'+c]*0.9
df['12W_AVG.'+c+'_UAL'] = df['12W_AVG.'+c]*1.1
df.drop(c, axis=1, inplace=True)
推荐阅读
- typescript - Ionic3 on button click iframe.contentWindow.postMessage,每次点击都需要停止刷新url/iframe
- asp.net - 动态删除行后从视图中发布的值不正确
- excel - 使用 VBA 抓取网页以在匹配条件时返回数据
- cookies - Vaadin 8:动态打开和关闭 @Push 以将 @Push 与 cookie 一起使用
- python - Pandas 合并具有不同大小形状和列名的 DF 以及没有重复的频率
- python-3.x - 如何使用具有不同角色的 Python 从 S3 生产复制到 S3 开发?
- c++ - 构建一个包含 opencv 库的 cmake c++ 项目
- jenkins - 集成 jenkins 和 iib 运行时
- javascript - Javascript:以集合为键创建字典/地图/对象
- swift - Bool 忽略 struct 中的 dict 值