簡體   English   中英

如何使用 Pandas 根據實際日期查找一年中的天數?

[英]How to find the number of the day in a year based on the actual dates using Pandas?

我的數據框data有一個日期變量dateOpen ,格式如下date_format = "%Y-%m-%d %H:%M:%S.%f"我想要一個名為openDay的新列,它是基於一年 365 天的天數。 我嘗試應用以下

data['dateOpen'] = [datetime.strptime(dt, date_format) for dt in data['dateOpen']]
data['openDay'] = [dt.day for dt in data['dateOpen']]

但是,我得到了這個月的一天。 例如,如果日期是2013-02-21 10:12:14.3那么上面的公式將返回 21。但是,我希望它返回 52,即從一月開始的 31 天加上從二月開始的 21 天。

在 Pandas 中是否有一種簡單的方法可以做到這一點?

最新的熊貓上,您可以使用日期時間屬性

>>> ts = pd.Series(pd.to_datetime(['2013-02-21 10:12:14.3']))
>>> ts
0   2013-02-21 10:12:14.300000
dtype: datetime64[ns]
>>> ts.dt.dayofyear
0    52
dtype: int64

在舊版本上,您可以轉換為DatetimeIndex ,然后使用.dayofyear屬性:

>>> pd.Index(ts).dayofyear  # may work
array([52], dtype=int32)

不確定是否有內置的pandas ,但在 Python 中,您可以獲得“朱利安”日,例如:

data['openDay'] = [int(format(dt, '%j')) for dt in data['dateOpen']]

例子:

>>> from datetime import datetime
>>> int(format(datetime(2013,2,21), '%j'))
52
#To find number of days in this year sofar

from datetime import datetime
from datetime import date
today = date.today()
print("Today's date:", today)
print(int(format(today, '%j')))

今日日期:2020-03-26
86

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM