Я работаю над часовыми и ежечасными временными рядами.Тем не менее, одно из условий, которое мне нужно проверить, - это среднесуточные значения.Мне нужно найти дни, которые соответствуют условию, а затем выбрать все часы (или другие временные шаги) из этих дней, чтобы изменить их значения.Но сейчас единственное значение, которое действительно изменяется, - это первый час выбранного дня.Как я могу выбирать и изменять каждый час?
Это пример моего набора данных:
In[]: print(hourly_dataset.head())
Out[]:
GHI DNI DHI
2016-01-01 00:00:00 0.0 0.0 0.0
2016-01-01 01:00:00 0.0 0.0 0.0
2016-01-01 02:00:00 0.0 0.0 0.0
2016-01-01 03:00:00 0.0 0.0 0.0
2016-01-01 04:00:00 0.0 0.0 0.0
И это условие, которое мне нужно проверить.Я сохранил индексы, которые удовлетворяют условию дневного стандартного отклонения, как ix
.
ix = hourly_dataset['GHI'].resample('D').std()[hourly_dataset['GHI'].resample('D').std() > 300].index
In[]: print(ix)
Out[]: DatetimeIndex(['2016-05-31', '2016-07-17', '2016-07-18'], dtype='datetime64[ns]', freq=None)
Но затем я назначаю значение nan для этих дней, и только первый час фактически изменяется на nan.
hourly_dataset.loc[ix,'GHI'] = np.nan
In[]: print(hourly_dataset.loc['2016-05-31','GHI'].head())
Out[]:
2016-05-31 00:00:00 NaN
2016-05-31 01:00:00 0.0
2016-05-31 02:00:00 0.0
2016-05-31 03:00:00 0.0
2016-05-31 04:00:00 7.4
Freq: H, Name: GHI, dtype: float64
Я бы хотел, чтобы всем значениям в этот день присваивались nan.Спасибо за помощь!