Vaex Datetime сравнение - PullRequest
       22

Vaex Datetime сравнение

0 голосов
/ 23 марта 2020

У меня есть vaex dataframe, который читает из файла hdf5. У него есть столбец даты, который читается как строка. Я преобразовал это в дату и время. Тем не менее, я не могу делать какие-либо сравнения дат. Я могу извлечь день, месяц, год и т. Д. c из даты, чтобы преобразование было правильным. Но как мне выполнять операции, например, когда дата находится между x и y?

import vaex
import datetime

vaex_df=vaex.open('filename.hdf5')
vaex_df['pDate']=vaex_df.Date.values.astype('datetime64[ns]')

Типы данных соответствуют ожиданиям

print(data.dtypes)
## Date            <class 'str'>
## pDate          datetime64[ns]

Теперь мне нужно отфильтровать строки на основе некоторой даты

start_date=datetime.date(2019,10,1)
vaex_df=vaex_df[(vaex_df.pDate.dt>=start_date)] 
print(vaex_df) # throws SyntaxError: invalid token 

Я получаю неверный токен, когда пытаюсь посмотреть новый фрейм данных. Я могу извлечь месяц и год отдельно и применить фильтр. Но это дало бы неправильный результат

vaex_df=vaex_df[(vaex_df.pDate.dt.month>int(str(start_date)[5:7]))&(vaex_df.pDate.dt.year>=int(str(start_date)[:4]))]

Как мне выполнить операции сравнения диапазонов дат в vaex?

1 Ответ

1 голос
/ 25 марта 2020

datetime с numpy работает

#Instead of 
start_date=datetime.date(2019,10,1) 
#Use 
start_date=np.datetime64('2019-10-01')

На vaex dataframe

vaex_df=vaex_df[(vaex_df.pDate>=start_date)] 
...