Вперед Распространение значений при взятии средних - PullRequest
0 голосов
/ 23 января 2020

Я пытаюсь выяснить, как пересылать значения в Python Pandas следующим образом: в основном, скажем, у меня есть серия Pandas (каждый элемент - время t):

[5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1]

Я бы хотел, чтобы каждый элемент продолжался 4 периода времени, что означает:

[5, 5, 5, 5, ...]

Однако, как вы можете видеть, мои 5 будут перезаписывать 2, 3, 3 и т.д. c ... В моем случае я хотел бы сохранить их все, но взять среднее из всех.

Таким образом, это будет:

[5, 3.5, 3.33, 3.25, ...]

I ' я пробовал:

myList = [5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1]
N=4
np.convolve(myList, np.ones((N,))/N, mode='valid')

Но я получаю:

[3.25,
 3.0,
 4.75,
 4.5,
 4.5,
 3.75,
 3.75,
 3.75,
 4.75,
 5.75,
 5.25,
 7.0,
 5.75,
 5.25,
 3.75]

Что не совсем то, что я ожидал ....

Вы знаете, как это сделать? ? Большое спасибо

1 Ответ

0 голосов
/ 23 января 2020

Это то, что вы ищете?

s = pd.Series([5, 2, 3, 3, 4, 9, 2, 3, 1, 9, 2, 7, 5, 7, 9, 2, 3, 1])
s.rolling(4, min_periods=1).mean()

0     5.000000
1     3.500000
2     3.333333
3     3.250000
4     3.000000
5     4.750000
6     4.500000
7     4.500000
8     3.750000
9     3.750000
10    3.750000
11    4.750000
12    5.750000
13    5.250000
14    7.000000
15    5.750000
16    5.250000
17    3.750000
dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...