我的数据框中有一列日期,我想从日期示例中获取该月的最后一天,如果日期是'2017-01-25'我想得到'2017-01-31'我假设我可以从日期中获取月份和年份数,并使用月份来计算月份的最后一天,但我正在寻找一行代码
如果您有日期,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日
将输出指定为:
| 归档时间: |
|
| 查看次数: |
8351 次 |
| 最近记录: |