从年份和朱利安日在熊猫中创建日期时间
Posted
技术标签:
【中文标题】从年份和朱利安日在熊猫中创建日期时间【英文标题】:Creating datetime in pandas from year and julian day 【发布时间】:2016-10-30 06:11:23 【问题描述】: 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
如何使用year
和JD
(儒略日)列添加日期时间列?我试图使用:
pd.to_datetime(df, format='%Y_%d')
,但这不起作用
【问题讨论】:
我不确定我是否理解julian day
。和day
有区别吗?
儒略日是一年中的一天,从 1 到 365/366
【参考方案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
【讨论】:
儒略日从 1 到 365 / 366(闰年)是否有效?以上是关于从年份和朱利安日在熊猫中创建日期时间的主要内容,如果未能解决你的问题,请参考以下文章