查找一年中的总天数(pandas)

fivyi3re  于 2023-05-27  发布在  其他
关注(0)|答案(4)|浏览(141)

在Pandas中,如果日期时间格式为YYYY-MM-DD,有没有办法计算一年中的总天数?我已经研究过dt.dayofyear,但这个函数似乎提供了从年初到我的datetime变量的天数。
例如,如果我的日期是2020-03-30,我应该知道这是2020年,有366天(闰年)。如果是2019-03-30,则应该返回365天(非闰年)。
尝试搜索pandas dt文档,但似乎找不到任何文档。
谢谢。

xesrikrc

xesrikrc1#

import datetime
import calendar
    
def days_in_year(year=datetime.datetime.now().year):
    return 365 + calendar.isleap(year)
kadbb459

kadbb4592#

year = 2021
pd.Timestamp(year, 12, 31).dayofyear
ulmd4ohb

ulmd4ohb3#

您也可以使用日历模块,如下所示:

import datetime as dt
import calendar
date=dt.datetime.strptime('2020-03-30', '%Y-%m-%d')
year=date.year
days=366 if calendar.isleap(year) else 365
0s0u357o

0s0u357o4#

我不确定是否有确切的函数来计算给定年份作为输入的天数
我会用它来计算任何一年的天数:

year=2020
number_of_days = sum([pd.Period(f'{year}-{i}-1').daysinmonth for i in range(1,13)])

但也可以使用pd.period并检查闰年

import pandas as pd
p = pd.Period('2020-03-30')
if p.is_leap_year:
   days = 366
else:
   days = 365
print(days)

2020年的产出:

366

相关问题