Python Как скользить для суммы данных в dataframe? - PullRequest
0 голосов
/ 10 ноября 2019

Если у меня есть такой фрейм данных.

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?

Ответы [ 3 ]

2 голосов
/ 10 ноября 2019

Вы можете сделать это с помощью скользящего среза в понимании списка

df = [3, 2, 4, 1, 0, 3]
print([sum(df[i:i+3]) for i in range(len(df)-2)])
[9, 7, 5, 4]
0 голосов
/ 10 ноября 2019

ваш 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])
0 голосов
/ 10 ноября 2019

Вы можете использовать что-то вроде этого.

a = map(lambda x: sum(df[x:x+3]),range(len(df)-2))
print(list(a))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...