Уменьшить значения на диапазон процентов, выбранных случайным образом - PullRequest
0 голосов
/ 08 ноября 2018

У меня есть значения потребления электроэнергии в 36 домохозяйствах (df), я бы хотел изменить только значения пиковых часов (с 17:00 до 23:00). Я хотел бы сделать это, умножив их на коэффициент, однако я хочу, чтобы этот коэффициент изменялся случайным образом с 8% до 12%.

Я удалил время (ЧЧ: ММ: СС) из столбца даты и времени с помощью следующей функции:

df['Time']=pd.to_datetime(df['DateTime']).dt.strftime ('%H:%M:%S')

Затем я сравниваю значения столбца df ['Time'] со значениями пиковых часов с помощью следующей функции

df.loc[(df['Time'] == '17:00:00') | (df['Time'] == '17:30:00') | (df['Time'] == '18:00:00') | (df['Time'] == '18:30:00') | (df['Time'] == '19:00:00') | (df['Time'] == '19:30:00') | (df['Time'] == '20:00:00') | (df['Time'] == '20:30:00') | (df['Time'] == '21:00:00') | (df['Time'] == '21:30:00') | (df['Time'] == '22:00:00') | (df['Time'] == '22:30:00') | (df['Time'] == '23:00:00') , 'Response KWH/hh (per half hour) '] *= 0.9

Но у меня следующий вопрос:

  1. Как я могу изменить коэффициент 0,9 для коэффициента, случайно выбранного из диапазона от 0,08 до 0,12 вместо фиксированного коэффициента? поэтому каждая из 30-минутных выборок умножается на другой коэффициент, который падает между 0,08 до 0,12

Заранее спасибо

1 Ответ

0 голосов
/ 08 ноября 2018

Основная идея должна быть следующей:

rand_nums = np.random.rand(shape)*(0.12-0.08) + 0.08

Это дает вам случайные значения от 0,08 до 0,12.

Затем вы можете умножить это на ваш массив раз, преобразованный в секунды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...