Код: Выделить всё
day_0
Код: Выделить всё
ids
Код: Выделить всё
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(8, 15, size=(10, 7)))
df.columns = ['day_0', 'day_-1', 'day_-2', 'day_-3', 'day_-4', 'day_-5', 'day_-6']
df.index.name = 'id'
print(df.reset_index())
id day_0 day_-1 day_-2 day_-3 day_-4 day_-5 day_-6
0 0 10 10 14 8 14 14 14
1 1 10 13 11 11 8 10 10
2 2 10 12 9 12 9 10 10
3 3 12 12 9 11 9 12 13
4 4 12 13 8 12 8 11 9
5 5 13 9 8 13 9 12 10
6 6 8 9 8 14 8 13 14
7 7 13 10 14 12 8 9 11
8 8 8 8 10 12 11 14 14
9 9 14 13 13 9 11 14 13
- > w_-1 > w_-2 > ... > w_-6
Код: Выделить всё
w_0
- + w_-1 + w_-2 + ... + w_-6 = 7
Код: Выделить всё
w_0
- среднее взвешенное значение для 7 из 10 идентификаторов должны быть ниже порогового значения (например, 11)
Код: Выделить всё
import numpy as np
n = 7
_lambda = 0.5
# Calculate the weights using exponential decay
weights = np.exp(-_lambda * np.arange(n))
# Normalize the weights so that their sum is equal to the length of the time series
weights *= n / np.sum(weights)
Есть идеи? Возможно ли это? Как я могу сделать это в Python?
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python