2016-06-28 1 views
1
    ad_name adl_name year JD 
0 united_states_of_america colorado 2000 1 
1 united_states_of_america colorado 2000 2 
2 united_states_of_america colorado 2000 3 
3 united_states_of_america colorado 2000 4 
4 united_states_of_america colorado 2000 5 

, как добавить столбец DATETIME, используя (юлианский день) столбцы year и JD? Я пытался использовать:Создание DateTime в панд от года и юлианская

pd.to_datetime(df, format='%Y_%d'), но это не работает

+0

Я не уверен, понимаю ли я «юлианский день». Разве это как «день»? – jezrael

+0

julian day - это день года и идет от 1 до 365/366 – user308827

ответ

1

Вам нужно добавить в year колонку JD преобразованного to_timedelta:

df['date'] = pd.to_datetime(df.year, format='%Y') + pd.to_timedelta(df.JD - 1, unit='d') 
print (df) 
        ad_name adl_name year JD  date 
0 united_states_of_america colorado 2000 1 2000-01-01 
1 united_states_of_america colorado 2000 2 2000-01-02 
2 united_states_of_america colorado 2000 3 2000-01-03 
3 united_states_of_america colorado 2000 4 2000-01-04 
4 united_states_of_america colorado 2000 5 2000-01-05 

образца с JD=32 и JD=366:

print (df) 
        ad_name adl_name year JD 
0 united_states_of_america colorado 2000 32 
1 united_states_of_america colorado 2000 366 

df['date'] = pd.to_datetime(df.year, format='%Y') + pd.to_timedelta(df.JD - 1, unit='d') 
print (df) 
        ad_name adl_name year JD  date 
0 united_states_of_america colorado 2000 32 2000-02-01 
1 united_states_of_america colorado 2000 366 2000-12-31 
+0

будет ли он работать в юлианский день, идущий от 1 до 365/366 (високосный год)? – user308827

Смежные вопросы