在Pandas中,如果日期时间格式为YYYY-MM-DD,有没有办法计算一年中的总天数?我已经研究过dt.dayofyear,但这个函数似乎提供了从年初到我的datetime变量的天数。例如,如果我的日期是2020-03-30,我应该知道这是2020年,有366天(闰年)。如果是2019-03-30,则应该返回365天(非闰年)。尝试搜索pandas dt文档,但似乎找不到任何文档。谢谢。
xesrikrc1#
import datetime import calendar def days_in_year(year=datetime.datetime.now().year): return 365 + calendar.isleap(year)
kadbb4592#
year = 2021 pd.Timestamp(year, 12, 31).dayofyear
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
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
4条答案
按热度按时间xesrikrc1#
kadbb4592#
ulmd4ohb3#
您也可以使用日历模块,如下所示:
0s0u357o4#
我不确定是否有确切的函数来计算给定年份作为输入的天数
我会用它来计算任何一年的天数:
但也可以使用pd.period并检查闰年
2020年的产出: