2017-02-22 22 views
0

Таким образом, я пытаюсь найти строки, в которых данные указывают на несчастный случай - в этом случае набор данных идентифицирует сигнал тревоги, который затем приводит к появлению сигнала ошибки в наборе данных между 1 и 14 дней спустя.df.loc - Редактирование нескольких строк на основе условия

Возможно ли создать столбец «неисправности», при котором после обнаружения сигнала тревоги столбец «ошибка» установлен на «Истина» в течение следующих 14 дней? df.loc пытается работать, но изменит только одну строку для соответствующего дня, тогда как мне нужно решение, которое может отредактировать соответствующий день и остальные 13 дней! Таким образом, я могу проверить дату сигнала ошибки относительно диапазона дат сигналов тревоги, чтобы определить, действительно ли произошла ошибка.

например. Псевдо данные

time   vibration_value fault? 
2007-06-01  50     False 
2007-06-02  47     False 
2007-06-03  29     False 
2007-06-04  52     False 
2007-06-05  455    True 
2007-06-06  672    True 
2007-06-07  513    True 
2007-06-08  532    True 
2007-06-09  510    True 
2007-06-10  498    True 
2007-06-11  12     False 
2007-06-12  25     False 
2007-06-13  19     False 
2007-06-14  46     False 

Я достигающее это первый результат неисправности с кодом ниже, но я не уверен, как получить это отредактировать последующие строки.

df.loc[df['vibration_value'] >= 250, 'Fault'] = True 
+0

Извиняюсь, теперь отсортированы по алфавиту – PenguinProgrammer

+0

Нужный вывод, что столбец «Fault» остается верным для дополнительных нескольких дней, так что я могу Перекрестная ссылка против тех дней, когда данные не совсем правильно выравнивать – PenguinProgrammer

+0

Что делать, если 'df ['vibration_value']> = 520' и нужны последние 3 дня? – jezrael

ответ

1

В соответствии с моим пониманием вашего вопроса это должно работать.

df.ix[df['vibration_value'] >= 250, 'Fault'] = True