python - 根据年份和儒略日在 pandas 中创建日期时间

标签 python datetime pandas dataframe time-series

                  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'),但这不起作用

最佳答案

您需要添加到转换后的yearJDto_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

关于python - 根据年份和儒略日在 pandas 中创建日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38067348/

相关文章:

python - 给定端口=0时如何确定aiohttp选择哪个端口

python - 失败 : Replace a single value with a new value for an individual DataFrame column

python - 循环中从数据帧获取最大值和最小值

python - 解析和存储 HTML 标签以及文本

python - Django - 通过 ajax 请求提供文件

php - 在 PHP 中减去日期

javascript - 如何用特定值替换数组并添加到特定索引中?

python - '不再支持将列表喜欢传递给带有任何缺失标签的 .loc 或 [],请参阅

python - 如何删除名称重复但保留数据的列

python - 为什么 NumPy 在一个大矩阵 $M$ 上的减法比将 $M$ 分成较小的矩阵然后进行减法慢?