Я читаю CSV-файл со столбцом даты и времени, в котором случайным образом перемежаются блоки текста без даты и времени (5 строк в блоке за раз, а иногда и несколько блоков подряд). Ниже приведен пример фрагмента файла данных:
Дата,Время,Счетчик,Неисправность,Батарея 22.12.2015,05:24.0,39615.0,0.0,6.42 22.12.2015,05:25.0,39616.0,0.0,6.42 22.12.2015,05:26.0,39617.0 ,0.0,6.42 22/12/2015,05:27.0,39618.0,0.0,6.42 ,,,, Зонд STSO3275,,,, RMR,,,, Сайт по умолчанию,,,, X2CMBasicOpticsBurst,,,, ,,,, Зонд STSO3275,,,, RMR,,,, Сайт по умолчанию,,,, X2CMBasicOpticsBurst,,,, 22.12.2015,19:57.0,39619.0,0.0,6.42 22.12.2015,19:58.0,39620.0,0.0, 6.42 22.12.2015,19:59.0,39621.0,0.0,6.42 22.12.2015,20:00.0,39622.0,0.0,6.42 22.12.2015,20:01.0,39623.0,0.0,6.42 12/22/ 2015,20:02.0,39624.0,0.0,6.42
Я могу прочитать данные из буфера обмена и в кадр данных следующим образом:
df = pd.read_clipboard(sep=',')
Я ищу способ очистить столбец «Дата» от строк, не отформатированных по дате, перед преобразованием в индекс даты и времени. Я попытался преобразовать столбец в индекс, а затем в список и фильтровать следующим образом:
df.index=df['Date']
df = df[~df.index.get_loc('RMR')]
df = df[~df.index.get_loc('Default Site')]
df = df[~df.index.get_loc('X2CMBasicOpticsBurst')]
df = df[~df.index.get_loc('Sonde STSO3275')]
df = df.dropna()
Затем я могу проанализировать даты и время вместе и получить правильный индекс даты и времени, используя инструменты анализа даты. Однако содержимое текстовых полей может меняться, и этот подход кажется очень ограниченным и не питоническим.
Поэтому я ищу лучший, более гибкий и динамичный метод для автоматического пропуска этих полей без даты в индексе, надеюсь, без необходимости знать подробности их содержимого (например, пропуск блока из 4 строк, когда встречается пустая строка) .
Заранее спасибо.