从年份和儒略日在 pandas 中创建日期时间 [英] Creating datetime in pandas from year and julian day

查看:33
本文介绍了从年份和儒略日在 pandas 中创建日期时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

                  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(儒略日)列添加日期时间列?我试图使用:

how do I add a datetime column using the year and JD (julian day) columns? I was trying to use:

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

推荐答案

You need add to year column JD 转换 to_timedelta:

You need add to year column JD converted 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

这篇关于从年份和儒略日在 pandas 中创建日期时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆