如何从给定日期获得该月的最后一天

mik*_*uuu 1 python date

我的数据框中有一列日期,我想从日期示例中获取该月的最后一天,如果日期是'2017-01-25'我想得到'2017-01-31'我假设我可以从日期中获取月份和年份数,并使用月份来计算月份的最后一天,但我正在寻找一行代码

don*_*mus 8

如果您有日期,d那么最简单的方法是使用该calendar模块查找当月的天数:

datetime.date(d.year, d.month, calendar.monthrange(d.year, d.month)[-1])
Run Code Online (Sandbox Code Playgroud)

或者,仅使用datetime,我们只需找到下个月的第一天,然后删除一天:

datetime.date(d.year + d.month // 12, 
              d.month % 12 + 1, 1) - datetime.timedelta(1)
Run Code Online (Sandbox Code Playgroud)

如果表达为:您可能会发现逻辑更清晰:

datetime.date(d.year + (d.month == 12), 
              (d.month + 1 if d.month < 12 else 1), 1) - datetime.timedelta(1)
Run Code Online (Sandbox Code Playgroud)


小智 6

简单的 Pandas 有一个功能:

pd.Period('10-DEC-20',freq='M').end_time.date()
Run Code Online (Sandbox Code Playgroud)

用于freq='M'修改您的要求

end_time月末 开始 start_time

将输出指定为:

输出图像 - 单击此处