получение данных заданного временного диапазона в python, когда временная метка неверна

#python #pandas

#python #pandas

Вопрос:

         time          a      b
2021-05-23 22:06:54 10.4    70.1    
2021-05-23 22:21:41 10.7    68.3    
2021-05-23 22:36:28 10.4    69.4    
2021-05-23 22:51:15 9.9     71.7    
2021-05-23 23:06:02 9.5     73.1    
... ... ... ... ... ...
2021-11-19 08:18:31 19.8    43.0    
2021-11-19 08:20:04 21.0    42.0    
2021-11-19 08:21:25 35.5    20.0    
2021-11-19 08:21:32 19.8    43.0    
2021-11-19 08:23:05 21.0    42.0

 

здесь time находится в индексе, а не в столбце.
когда я сделал df.between_time("2021-11-17 08:15:00","2021-11-19 08:00:00")
выдает ошибку ValueError: Cannot convert arg ['2021-11-17 08:15:00'] to a time

фрейм данных не имеет правильной временной метки. Что я хочу сделать, -: когда я передаю диапазон времени или диапазон дат, я хочу получить все данные за заданное время.

Спасибо

Комментарии:

1. AFAICT, between_time используется для времени, т.Е. HH:MM:SS . Вы можете захотеть between , например df.index.between(start, end) .

2. @QuangHoang AttributeError: 'DatetimeIndex' object has no attribute 'between' это ошибка, которую я получаю

Ответ №1:

Используйте truncate :

 >>> df.truncate("2021-05-23 23:00:00", "2021-11-19 08:20:00")
                        a     b
time                           
2021-05-23 23:06:02   9.5  73.1
2021-11-19 08:18:31  19.8  43.0