Sun*_*oiz 10 python-3.x pandas
有没有办法计算 Pandas 中 YYYY-MM-DD 日期时间格式的一年中的总天数?我已经探索过 dt.dayofyear 但这个函数似乎提供了从年初到我的日期时间变量的天数。
举个例子,如果我的日期是 2020-03-30,我应该知道今年是 2020 年,有 366 天(闰年)。如果是 2019-03-30,则应返回 365 天(非闰年)。
尝试搜索 pandas dt 文档,但似乎找不到任何内容。
谢谢。
too*_*mas 14
import datetime
import calendar
def days_in_year(year=datetime.datetime.now().year):
return 365 + calendar.isleap(year)
Run Code Online (Sandbox Code Playgroud)
小智 5
您还可以使用日历模块,如下所示:
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
Run Code Online (Sandbox Code Playgroud)
我不确定是否有一个函数可以计算给定年份作为输入的天数
我将用它来计算任何一年的天数:
year=2020
number_of_days = sum([pd.Period(f'{year}-{i}-1').daysinmonth for i in range(1,13)])
Run Code Online (Sandbox Code Playgroud)
但您也可以使用 pd.Period 并检查闰年
import pandas as pd
p = pd.Period('2020-03-30')
if p.is_leap_year:
days = 366
else:
days = 365
print(days)
Run Code Online (Sandbox Code Playgroud)
两者都会在 2020 年输出:
366
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14101 次 |
| 最近记录: |