У меня есть столбец фрейма данных с числами. Мне нужно добавить новый столбец во фрейм данных, где значение нового столбца является суммой текущего значения и следующих двух значений этого столбца. Последние две строки нового столбца должны быть NAN.
Например: если мой столбец
p=[1,2,3,4,5,6,7,8]
df=pd.DataFrame({'num':p})
#dummy data
Первое значение нового столбца должно быть 1 + 2 + 3, второе 2 + 3 + 4 и так далее.
Прямо сейчас я делаю, преобразовав столбец в список, а затем выполняю вычисления.
p=df['num'].tolist()
ls=[]
for (i,v) in enumerate(p):
try:
val=v+p[i+1]+p[i+2]
ls.append(val)
except:
ls.append(np.NAN)
и, наконец, добавление списка во фрейм данных
df['rolled']=ls
Есть ли способ, которым мы можем сделать это самими пандами? Я пробовал скользящее среднее, не работает так, как я хочу, есть ли какое-то специальное окно в скользящем среднем, которое может получить вывод в требуемом формате?
Заранее спасибо