Создайте логический фрейм данных на основе разницы между двумя датами - PullRequest
0 голосов
/ 12 января 2019

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

Index    Gap in days
0        2 days 00:00:00
1        8 days 00:00:00
2        4 days 00:00:00
3        15 days 00:00:00
...
201      21 days 00:00:00

Формат даты был преобразован в стандартный формат даты и времени. Я хочу создать простой логический фрейм данных, который возвращает TRUE, если разрыв в днях превышает 7 дней, и FALSE в противном случае.

Моя первая попытка была простой:

morethan7days = gaps > 7

За что я получаю ошибку:

TypeError: invalid type comparison

Кто-нибудь знает, что я делаю неправильно и как это исправить?

Ответы [ 2 ]

0 голосов
/ 12 января 2019

Вы можете преобразовать timedeltas в дни по Series.dt.days, а затем сравнить по целому числу:

gaps = df['Gap in days']
morethan7days = gaps.dt.days > 7
print (morethan7days)
0    False
1     True
2    False
3     True
4     True
Name: Gap in days, dtype: bool

Другое решение по сравнению с pandas.Timedelta:

gaps = df['Gap in days']
morethan7days = gaps > pd.Timedelta(7, unit='d')
0 голосов
/ 12 января 2019

Не важно, я получил ответ методом проб и ошибок:

morethan7days = gaps > datetime.timedelta(days=7)
...