Как преобразовать серию pandas в тип datetime? - PullRequest
0 голосов
/ 14 июля 2020

Я прочитал часть сообщений, связанных с этим топом c, но ничего не получилось.

Я пытаюсь преобразовать в столбец моего фрейма данных с именем dem_inclusiondate и sae_hospit_date, потому что мне нужно сделать

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

Я пробовал это после вашего комментария

  baseline_all_patients["dem_inclusiondate"]
    .to_datetime(baseline_all_patients["dem_inclusiondate"], format="%Y-%m-%d")

, но возникает эта ошибка: 'Series' object has no attribute 'to_datetime'

Извините, я новичок, я не знаю, ясен ли мой вопрос

Спасибо за помощь.

1 Ответ

0 голосов
/ 14 июля 2020

Я считаю, что это должно помочь. Давайте сгенерируем некоторые данные.

df = pd.DataFrame({'date_begin':['2020.6.7', '2020.5.3', '2020.1.1'],
                   'date_end':['2020.6.17', '2020.6.1', '2020.1.20']})

Тогда синтаксис для преобразования stings в pandas довольно прост. Подробнее см. Документация

df['date_begin'] = pd.to_datetime(df['date_begin'], yearfirst=True)
df['date_end']   = pd.to_datetime(df['date_end'],   yearfirst=True)

Теперь timeDeltas может вызвать некоторые проблемы. Это потому, что месяцы и годы имеют разную продолжительность. В зависимости от требуемой точности вы можете использовать Numpy (np) timedelta или pandas 'own timedelta.

(df['date_end'] - df['date_begin']) / pd.Timedelta('1 days') 
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'D')
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'M')
(df['date_end'] - df['date_begin']) / np.timedelta64(1, 'Y')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...