Панды, как получить сумму текущего значения и следующих двух последовательных значений столбца и добавить в новый столбец - PullRequest
0 голосов
/ 06 июля 2018

У меня есть столбец фрейма данных с числами. Мне нужно добавить новый столбец во фрейм данных, где значение нового столбца является суммой текущего значения и следующих двух значений этого столбца. Последние две строки нового столбца должны быть 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

Есть ли способ, которым мы можем сделать это самими пандами? Я пробовал скользящее среднее, не работает так, как я хочу, есть ли какое-то специальное окно в скользящем среднем, которое может получить вывод в требуемом формате?

Заранее спасибо

1 Ответ

0 голосов
/ 06 июля 2018
df = df[::-1]
df['num3'] = df.rolling(3).sum()
df[::-1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...