2016-11-16 5 views
0

У меня есть Python Dataframe, который выглядит следующим образом:падение Python панды dataframe строк на основе даты в индексе

     Facility PUE PUEraw Servers 
2016-11-14 00:00:00  6.0  NaN 1.2  5.0 
2016-11-14 00:30:00  6.0  NaN 1.2  5.0 
2016-11-14 01:00:00  6.0  NaN 1.2  5.0 

т.д.

Как вы можете видеть, индекс даты/времени. Информационная рамка обновляется с новым значением каждые полчаса.

Я пытаюсь написать сценарий, который удаляет все строки, кроме тех, которые соответствуют дате СЕГОДНЯ, для которой я использую date = dt.datetime.today(). Тем не менее, я боюсь, отчасти потому, что индекс также содержит время.

Есть ли у кого-нибудь предложения? Кроме того, скрипт, который удаляет все, кроме последних 48 строк, также будет работать для меня (последние 48 x полчаса = данные последнего дня).

ответ

1

Вы всегда можете получить доступ последние строки в DataFrame с df.tail()

df = df.tail(48) 

Для получения дополнительной информации:

Pandas Documentation

+0

Спасибо. Это прекрасно работает и красиво и просто. – pottolom

2

Здесь два варианта, которые можно использовать для извлечения данных в определенный день:

df['2016-11-16'] 
#      Facility PUE PUEraw Servers 
# 2016-11-16 01:00:00  6.0 NaN  1.2  5.0 

import datetime 
df[df.index.date == datetime.datetime.today().date()] 
#      Facility PUE PUEraw Servers 
# 2016-11-16 01:00:00  6.0 NaN  1.2  5.0 
+0

Спасибо. Я не пробовал это, поскольку я пошел с другим методом, но он выглядит хорошо для меня. – pottolom

Смежные вопросы