Преобразовать DatetimeIndex в datetime.date в пандах? - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь вычесть текущую дату из столбца в пандах, чтобы получить количество дней (в виде целого числа).

Сначала я преобразовал дату в столбце (например: 27-Sep-2018), используяpd.to_datetime.

df['Date'] - datetime.datetime.now().date()

Я получил следующую ошибку:

Ошибка типа: неподдерживаемый тип (ы) операнда для -: 'DatetimeIndex' и 'datetime.date'

Я пытаюсь выяснить, как заставить это работать, а также преобразовать дни в целое число?

TIA

Ответы [ 3 ]

0 голосов
/ 11 сентября 2018

попробуйте использовать функцию datetime.strptime () для ее преобразования.

в вашем бывшем = '27 -Sep-2018 'это выглядело бы так:

from datetime import datetime
ex='27-Sep-2018'
date = datetime.strptime(ex, '%d-%b-%Y')

и затем:

date.days 

будет хранить результат (тип - int)

0 голосов
/ 11 сентября 2018

Я думаю, что проблема может быть связана с тем, что вы вычитаете объект даты и времени панды из объекта даты (который не включает время).Вы можете попробовать это:

df['Date_2'] = pd.to_datetime(df['Date']).dt.date

Теперь выполняем расчет: df['Date_2'] - datetime.datetime.now().date() должно работать.

0 голосов
/ 11 сентября 2018

Давайте использовать панд Timestamp.now():

s = pd.Series('27-Sep-2018')

s = pd.to_datetime(s)

(s - pd.Timestamp.now()).dt.days

Вывод:

0     15
dtype: int64

Примечание: ошибка говорит о том, что вы не можете вычесть тип объекта DatetimeIndex из объекта 'datetime.Дата'.Таким образом, используйте временную метку pandas для создания объекта того же типа, что и DateTimeIndex.

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