Выберите строки данных Pandas на основе часового времени - PullRequest
0 голосов
/ 20 февраля 2019

У меня есть pandas dataframe 'df' со столбцом DateTimes типа datetime.time.

Записи в этом столбце - это часы одного дня:

00:00:00
.
.
.
23:59:00

Пропускаются секунды, считаются минуты.

Как выбрать строки по часам, например, строки между 00:00:00 и 00: 01: 00?


ЕслиЯ пытаюсь это:

df.between_time('00:00:00', '00:00:10')

Я получаю сообщение об ошибке, что индекс должен быть DateTimeIndex.

Я устанавливаю индекс так:

df=df.set_index(keys='DateTime')

, но я получаюта же ошибка.

Кажется, я тоже не могу заставить 'loc' работать.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Вот рабочий пример того, что вы пытаетесь сделать:

times = pd.date_range('3/6/2012 00:00', periods=100, freq='S', tz='UTC')
df = pd.DataFrame(np.random.randint(10, size=(100,1)), index=times)
df.between_time('00:00:00', '00:00:30')

Обратите внимание, индекс должен иметь тип DatetimeIndex.

Я понимаю, у вас есть столбец с вашими датами /раз.Проблема, вероятно, заключается в том, что ваш столбец не относится к этому типу, поэтому вам нужно сначала преобразовать его, прежде чем устанавливать его в качестве индекса:

# Method A
df.set_index(pd.to_datetime(df['column_name'], drop=True)

# Method B
df.index = pd.to_datetime(df['column_name'])
df = df.drop('col', axis=1)

(Удаление необходимо только в том случае, если вы хотите удалить исходный столбецпосле установки в качестве индекса)

0 голосов
/ 20 февраля 2019

Проверьте следующие ссылки:
преобразование столбца в тип даты: Преобразование типа столбца DataFrame из строки в дату и время
фильтрация кадра данных по датам: Фильтрация кадров данных Pandas по датам
Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...