我想做这样的事情:
df['indicator'] = df.at[x-1] + df.at[x-2]
或
df['indicator'] = df.at[x-1] > df.at[x-2]
我想边缘情况会自动处理,例如跳过前几行。
答案 0 :(得分:1)
此行应为您提供所需的内容。 indicator
列的前两行将自动用'NaN'填充。
df['indicator'] = df.at.shift(1) + df.at.shift(2)
例如,如果我们具有以下数据框:
a = pd.DataFrame({'date':['2017-06-01','2017-06-02','2017-06-03',
'2017-06-04','2017-06-05','2017-06-06'],
'count' :[10,15,17,5,3,7]})
date at
0 2017-06-01 10
1 2017-06-02 15
2 2017-06-03 17
3 2017-06-04 5
4 2017-06-05 3
5 2017-06-06 7
然后运行此行将会得到以下结果:
df['indicator'] = df.at.shift(1) + df.at.shift(2)
date at indicator
0 2017-06-01 10 NaN
1 2017-06-02 15 NaN
2 2017-06-03 17 25.0
3 2017-06-04 5 32.0
4 2017-06-05 3 22.0
5 2017-06-06 7 8.0