Модифицируйте ячейки данных pandas, фильтруя данные времени данных - PullRequest
0 голосов
/ 26 апреля 2019

У меня есть набор данных с индексом, отметкой времени и значением, хранящимся в трех отдельных столбцах внутри фрейма данных pandas, например ::1001

enter image description here

Я хочу отфильтровать строки, чья отметка времени равна 23, и добавить скаляр к значениям в следующем столбце. Как я могу сделать это эффективно? Столбец индекса не установлен должным образом в наборе данных, и я не могу на него полагаться.

В настоящее время я использую цикл for для итерации по строкам, проверяю, равен ли час в метке времени 23, и изменяю значения в соответствующих ячейках, но это занимает много времени. Я попытался использовать метод .groupby, предложенный здесь , как показано ниже, но, похоже, это не работает. Он работает с данными два раза, оставляя данные без изменений и выбрасывая SettingWithCopyWarning. Вот что я пытаюсь Я не уверен, что это лучший способ сделать это:

        for index, data_slice in df.groupby(df["Date"].dt.hour == 23):
            data_slice.loc["value"] += 1

1 Ответ

2 голосов
/ 26 апреля 2019

Почему групповой, вы можете попробовать:

df.loc[df['Date'].dt.hour==23, 'value'] += 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...