Если у меня есть такой фрейм данных.
df = [3, 2, 4, 1, 0, 3]
Я хочу нарезать, чтобы суммировать 3 значения следующим образом.
3+2+4 = 9 2+4+1 = 7 4+1+0 = 5 1+0+3 = 4
Итак, результат будет.
9, 7, 5, 4
Как суммировать данные с помощью python?
Вы можете сделать это с помощью скользящего среза в понимании списка
df = [3, 2, 4, 1, 0, 3] print([sum(df[i:i+3]) for i in range(len(df)-2)])
[9, 7, 5, 4]
ваш df не является фреймом данных. Это список. Вы можете использовать выражение генератора с np.roll
df
np.roll
n = 3 a = np.array(df) sum(np.roll(a, -x) for x in range(n))[:len(a)-n+1] Out[29]: array([9, 7, 5, 4])
Вы можете использовать что-то вроде этого.
a = map(lambda x: sum(df[x:x+3]),range(len(df)-2)) print(list(a))