为了账号安全,请及时绑定邮箱和手机立即绑定

pandas dayofyear 的日期时间相当于什么?

pandas dayofyear 的日期时间相当于什么?

FFIVE 2023-06-27 18:06:37
我正在寻找从 列表中获取一年中某一天的值的数组datetimes。例如,我可以使用方法获取周数isocalendar。但是一年中的整数天的方法是什么?使用 pandas 这是dayofyear,但是如何使用该包获得它datetime?from datetime import timedelta, datetimeimport numpy as npimport pandas as pdfrom dateutil.relativedelta import *datetimes = np.arange(    datetime(2012,1,1), datetime(2017,1,1), timedelta(days=1)    ).astype(datetime)week_value_by_day = np.array([datetime.isocalendar()[1] for datetime in datetimes])在一天结束时,我想要一个使用此代码的数组np.array([datetime.<something> for datetime in datetimes]),其中<something>给我一年中的整数天并产生 array([1, 2, 3, 4, 5, 6..365]).
查看完整描述

2 回答

?
动漫人物

TA贡献1815条经验 获得超10个赞

尝试使用 strftime:

np.array([int(i.strftime("%j")) for i in datetimes])

然而,

np.array([datetime.timetuple().tm_yday for datetime in datetimes])

有效并且速度更快。


查看完整回答
反对 回复 2023-06-27
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

以下是日期之间天数的简短示例,仅使用 Python 内置日期时间模块:


import datetime


dates = [

    datetime.date(2019, 12, 30), datetime.date(2019, 12, 31),

    datetime.date(2020, 1, 1),   datetime.date(2020, 1, 2)

]


for d in dates:

    base_date = d.replace(month=1, day=1)

    days_between = (d - base_date) / datetime.timedelta(days=1)

    print(base_date, d, days_between)


2019-01-01 2019-12-30 363.0

2019-01-01 2019-12-31 364.0

2020-01-01 2020-01-01 0.0

2020-01-01 2020-01-02 1.0

days_between如果您想要基于 1 的索引,则需要添加 1 (在此示例中,1 月 1 日是“第 0 天”)。

查看完整回答
反对 回复 2023-06-27
  • 2 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信