У меня есть набор данных с индексом, отметкой времени и значением, хранящимся в трех отдельных столбцах внутри фрейма данных pandas, например ::1001
Я хочу отфильтровать строки, чья отметка времени равна 23, и добавить скаляр к значениям в следующем столбце. Как я могу сделать это эффективно? Столбец индекса не установлен должным образом в наборе данных, и я не могу на него полагаться.
В настоящее время я использую цикл for для итерации по строкам, проверяю, равен ли час в метке времени 23, и изменяю значения в соответствующих ячейках, но это занимает много времени. Я попытался использовать метод .groupby, предложенный здесь , как показано ниже, но, похоже, это не работает. Он работает с данными два раза, оставляя данные без изменений и выбрасывая SettingWithCopyWarning. Вот что я пытаюсь Я не уверен, что это лучший способ сделать это:
for index, data_slice in df.groupby(df["Date"].dt.hour == 23):
data_slice.loc["value"] += 1