我的数据框中有一列日期,我想从这些日期开始收到该月的最后一天 例如,如果日期是2017-01-25'我想得到2017-01-31' 我想我可以从日期中获取月份和年份数字,并使用月份来计算月份的最后一天,但我正在寻找一行代码
答案 0 :(得分:7)
如果您的日期为d
,那么最简单的方法是使用calendar
模块查找当月的天数:
datetime.date(d.year, d.month, calendar.monthrange(d.year, d.month)[-1])
或者,仅使用datetime
,我们只需找到下个月的第一天,然后删除一天:
datetime.date(d.year + d.month // 12,
d.month % 12 + 1, 1) - datetime.timedelta(1)
如果表达为:
,您可能会发现逻辑更清晰datetime.date(d.year + (d.month == 12),
(d.month + 1 if d.month < 12 else 1), 1) - datetime.timedelta(1)
答案 1 :(得分:0)
使用
查找一个月的最后一个日期year, month = 2017, 2
pd.date_range('{}-{}'.format(year, month), periods=1, freq='M')
答案 2 :(得分:0)
简单的熊猫有一个功能:
pd.Period('10-DEC-20',freq='M').end_time.date()
使用 freq='M'
修改您的要求
end_time
为月末
start_time
开始日
输出为:
答案 3 :(得分:-1)
我得到一个月的第一天,减去一天得到一天的最后一天。 ccyymmdd = str((pd.Period(datetime.today()。replace(day = 1),'D')-1).strftime(“%C%y-%m-%d”))