У меня проблемы с написанием эффективного кода (без большого количества циклов), который присваивает значение ячейке в кадре данных pandas, который обновляется каждую минуту или около того (живой поток).В обучающем наборе я обучил свою модель переменным меток времени с горячим кодированием, и это работало лучше, чем переменные продолжения, так что это то, что я хочу использовать для производства.Фрейм данных выглядит следующим образом:
datetime DOW_1 DOW_2 ... DOW_7 Month1 Month2 Month3
`2018-07-01 09:30:00` 0 1 0 0 0 1
Как видите, столбцы кодируются 0 и 1 для обозначения месяца, дня недели (и у меня больше столбцов для дня года, is_holiday и т. Д.)....) Я легко сделал это с данными обучения, проверки и тестирования, используя pd.get_dummies, но теперь, когда поступает живой поток данных, я не могу найти простой способ «назначить» month2 = 0 на основе df.index.month
Я пытался сделать что-то вроде цикла этого типа, но это довольно утомительно и медленно ..
i=0
while i < len(df):
for m in range(1,13):
if df.index.iloc[i].month == m:
df['Month'+str(m)][i] = 1
i+=1
else:
i+=1
Какие-нибудь лучшие предложения?