Как рассчитать ежедневные веса при определенных условиях в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как рассчитать ежедневные веса при определенных условиях в Python

Сообщение Anonymous »

У меня есть следующий кадр данных pandas, который представляет потребление в течение 7 дней ( — сегодня, day_-1 — вчера и т. д.) из 10 человек ():

Код: Выделить всё

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
Я хотел бы найти ежедневные веса (всего 7 весов: w_0, w_-1, w_-2, w_-3, w_-4, w_-5, w_-6 ), которые должны иметь следующие свойства:
  • > w_-1 > w_-2 > ... > w_-6
  • + w_-1 + w_-2 + ... + w_-6 = 7
  • среднее взвешенное значение для 7 из 10 идентификаторов должны быть ниже порогового значения (например, 11)
Я могу достичь предварительных условий 1 и 2, используя функцию экспоненциального затухания и позже нормализация:

Код: Выделить всё

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)
Но я не знаю, как можно применить также предварительное условие 3.
Есть идеи? Возможно ли это? Как я могу сделать это в Python?

Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»