我有一个包含日期的列表,列表如下:
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()
找到一个月的最大日期,但它给出了列表中的总体最大日期。有没有办法从列表中找到每个月的最大日期。
以下是如何:
dates = ['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']
dct = {date.rsplit('-', 1)[0]: [] for date in dates} # Dict with keys as all the dates without the day number, and values as empty lists
for date in dates:
y, m, d = date.split('-')
dct[f'{y}-{m}'].append(int(d)) # Add all the days from the months into the empty lists
print([f'{ym}-{max(dct[ym])}' for ym in dct]) # Concat the year and months with the greatest date
输出:
['2020-04-26', '2020-05-31', '2020-06-28', '2020-07-26', '2020-08-30', '2020-09-20']
你可能会
date将每个字符串日期转换为date
对象。fromisoformat
字符串
from datetime import date
from itertools import groupby
from operator import methodcaller
dates = map(date.fromisoformat, values)
dates_pre_month = groupby(sorted(dates, key=lambda x: x.month), key=lambda x: x.month)
max_per_month = (max(month_values) for month, month_values in dates_pre_month)
max_per_month = list(map(methodcaller("isoformat"), max_per_month))
你能行
s = pd.Series(pd.to_datetime(l))
new_list = s.groupby(s.dt.strftime('%Y-%m')).max().tolist()
new_list
[Timestamp('2020-04-26 00:00:00'), Timestamp('2020-05-31 00:00:00'), Timestamp('2020-06-28 00:00:00'), Timestamp('2020-07-26 00:00:00'), Timestamp('2020-08-30 00:00:00'), Timestamp('2020-09-20 00:00:00')]
问题内容: 我正在尝试使用python获取上个月的日期。这是我尝试过的: 但是,这种方法很糟糕,原因有两个:首先,它返回2012年2月的20122(而不是201202),其次它将返回0而不是1月的12。 我已经用bash解决了这个麻烦 我认为,如果bash为此目的具有内置方式,那么功能更强大的python应该比强迫编写自己的脚本来实现此目标更好。我当然可以做类似的事情: 我没有测试过此代码,也不想
本文向大家介绍在Python中的每个子列表中查找最大值,包括了在Python中的每个子列表中查找最大值的使用技巧和注意事项,需要的朋友参考一下 我们得到一个列表列表。在内部列表或子列表中,我们需要在每个列表中找到最大值。 与最大和 我们设计一个带in条件的for循环,并应用max函数来获取每个子列表中的最大值。 示例 输出结果 运行上面的代码给我们以下结果- 带映射和最大 在遍历子列表时,我们继续
假设我有一个像下面这样的数据,有名称、类和日期 我正在寻找一个输出,这将给我的每个名字的值计数,他们各自的等级和最早的日期和最新的日期。我的输出是, 我能够找到每个名字的计数, 但无法在“日期”列中找到“最早日期”和“最晚日期”。 有人能帮我吗?
我正在尝试建立一个网站,告诉你(以年、月、周、小时、分钟和秒为单位)你的年龄。我让他们每个人都工作了好几个月甚至好几年。一旦我得到了月数,我就可以得到年数(希望如此),但是我在想办法得到月数时遇到了困难。对于其他人来说,这很容易(一旦我有了出生日期和当前日期之间的秒数,我就可以把秒转换成分钟、小时、天等等),但是在接下来的几个月里,我需要考虑到它们都是不同的长度和闰年(目前也不影响天数)。
我有一个LocalDateTime对象,我想得到这个月的最后一个日期。所以如果localDateTime指向今天的10月29日。我想把它改为10月31日 有没有干净简单的方法 我的想法: 一种方法是得到这个月,然后做一个转换声明。但这将是一个漫长而乏味的过程。不确定是否有内置的方法来做同样的事情
我使用石英调度和Spring Batch,我需要在每个月的最后一个星期四运行一个特定的工作。 有可能创建这样的Quartz cron表达式吗? 谢谢