【问题标题】: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 

如何使用yearJD(儒略日)列添加日期时间列?我试图使用:

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

【问题讨论】:

  • 我不确定我是否理解julian day。和day有区别吗?
  • 儒略日是一年中的一天,从 1 到 365/366

标签: python datetime pandas dataframe time-series


【解决方案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

【讨论】:

  • 儒略日从 1 到 365 / 366(闰年)是否有效?
猜你喜欢
  • 2020-09-29
  • 2022-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 2016-07-27
相关资源
最近更新 更多