猿问

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

我正在寻找从 列表中获取一年中某一天的值的数组datetimes。例如,我可以使用方法获取周数isocalendar。但是一年中的整数天的方法是什么?使用 pandas 这是dayofyear,但是如何使用该包获得它datetime?


from datetime import timedelta, datetime

import numpy as np

import pandas as pd

from 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]).


FFIVE
浏览 133回答 2
2回答

动漫人物

尝试使用 strftime:np.array([int(i.strftime("%j"))&nbsp;for&nbsp;i&nbsp;in&nbsp;datetimes])然而,np.array([datetime.timetuple().tm_yday&nbsp;for&nbsp;datetime&nbsp;in&nbsp;datetimes])有效并且速度更快。

慕妹3146593

以下是日期之间天数的简短示例,仅使用 Python 内置日期时间模块:import datetimedates = [    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.02019-01-01 2019-12-31 364.02020-01-01 2020-01-01 0.02020-01-01 2020-01-02 1.0days_between如果您想要基于 1 的索引,则需要添加 1 (在此示例中,1 月 1 日是“第 0 天”)。
随时随地看视频慕课网APP

相关分类

Python
我要回答