我正在寻找从 列表中获取一年中某一天的值的数组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])
有效并且速度更快。
慕妹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 天”)。
添加回答
举报
0/150
提交
取消