преобразовать pandas datetime64 [ns] в юлианский день

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

Каков наилучший способ преобразовать столбец даты и времени pandas (datetime64 [ns], например, 2017-01-01 03:15:00) в другой столбец в том же кадре данных pandas, преобразованный в юлианский день, например, 2458971.8234259?

Большое спасибо


person Michael K    schedule 02.05.2020    source источник


Ответы (1)


Создайте DatetimeIndex и преобразуйте даты в юлианские даты:

df = pd.DataFrame({'dates':['2017-01-01 03:15:00','2017-01-01 03:15:00']})
df['dates'] = pd.to_datetime(df['dates'])

df['jul1'] = pd.DatetimeIndex(df['dates']).to_julian_date()
#if need remove times
df['jul2'] = pd.DatetimeIndex(df['dates']).floor('d').to_julian_date()

print (df)
                dates          jul1       jul2
0 2017-01-01 03:15:00  2.457755e+06  2457754.5
1 2017-01-01 03:15:00  2.457755e+06  2457754.5

Потому что:

df['jul'] = df['dates'].dt.to_julian_date()

AttributeError: объект «DatetimeProperties» не имеет атрибута «to_julian_date»

person jezrael    schedule 02.05.2020