2016-06-28 32 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 

如何添加使用yearJD(儒略日)列的日期時間列?我試圖用:創建從今年大熊貓datetime和儒略日

pd.to_datetime(df, format='%Y_%d'),但不起作用

+0

我不確定我是否理解'茱莉安日'。它與「天」不同嗎? – jezrael

+0

朱連安日是一年中的一天,從1到365/366 – user308827

回答

1

您需要添加到yearJD轉換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=32JD=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