【发布时间】:2021-01-10 03:01:32
【问题描述】:
我有一个包含日期的列表,该列表如下所示:
list = ['2020-04-05',
'2020-04-12',
'2020-04-19',
'2020-04-26',
'2020-05-03',
'2020-05-10',
'2020-05-17',
'2020-05-24',
'2020-05-31',
'2020-06-07',
'2020-06-14',
'2020-06-21',
'2020-06-28',
'2020-07-05',
'2020-07-12',
'2020-07-19',
'2020-07-26',
'2020-08-02',
'2020-08-09',
'2020-08-16',
'2020-08-23',
'2020-08-30',
'2020-09-06',
'2020-09-20',
'2020-09-13']
我想从列表中提取每个月的最高日期。我想要的输出如下所示:
Desired list = ['2020-04-26','2020-05-31','2020-06-28','2020-07-26','2020-08-30','2020-09-20']
我尝试使用Max() 查找当月的最大日期,但它给出了列表中的总体最大日期。有没有办法从列表中找到每个月的最大日期。
【问题讨论】:
-
这是我能想到的最简洁的解决方案(使用 itertools.groupby 和 datetime.datetime)。
[list(g)[-1] for _, g in groupby(l, key=lambda x: datetime.strptime(x[:-3], '%Y-%m'))]
标签: python python-3.x pandas datetime