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

wie füge ich eine Datetime-Spalte die year und JD (julian Tag) Spalten mit? Ich habe versucht, zu verwenden:Erstellen von Datetime in Pandas von Jahr und julian Tag

pd.to_datetime(df, format='%Y_%d'), aber das funktioniert nicht

+0

Ich bin mir nicht sicher, ob ich 'julianischen Tag' verstehe. Ist es anders als "Tag"? – jezrael

+0

Julian Tag ist der Tag des Jahres und geht von 1 bis 365/366 – user308827

Antwort

1

Sie fügen JDto_timedelta umgewandelt year Säule benötigen:

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 

Probe mit JD=32 und 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

wird es für Julian Tag von 1 bis 365/366 (Schaltjahr) arbeiten? – user308827