首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中创建连续的年份月份列表

在Python中创建连续的年份月份列表
EN

Stack Overflow用户
提问于 2020-07-08 05:43:16
回答 3查看 1.2K关注 0票数 2

我尝试使用以下代码从year-month (上个月的今天)到2021-05创建一个列表:

代码语言:javascript
复制
from datetime import datetime
from dateutil.relativedelta import relativedelta
need_months = list(range(-1, 12))
print([(datetime.today()+ relativedelta(months=i if i < 0 else i - 1)).strftime('%Y-%m') for i in need_months])

退出:

代码语言:javascript
复制
['2020-06', '2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02', '2021-03', '2021-04', '2021-05']

但正如您可能注意到的,列表中有两个2020-06

我怎么才能做得对呢?

预期结果:

代码语言:javascript
复制
['2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02', '2021-03', '2021-04', '2021-05']
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-08 05:46:53

这里可以使用period_rangeTimestamp.to_period将今天转换为月份,用于前一个月减去1并添加12个句点参数:

代码语言:javascript
复制
now = pd.Timestamp.now().to_period('m')
L = pd.period_range(now-1, freq='M', periods=12).strftime('%Y-%m').tolist()
print (L)
['2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', 
 '2020-12', '2021-01', '2021-02', '2021-03', '2021-04', '2021-05']
票数 2
EN

Stack Overflow用户

发布于 2020-07-08 05:46:14

变化

代码语言:javascript
复制
need_months = list(range(-1, 12))

代码语言:javascript
复制
need_months = list(range(0, 12))
print([(datetime.today()+ relativedelta(months=i if i < 0 else i - 1)).strftime('%Y-%m') for i in need_months])

产出:-

代码语言:javascript
复制
'2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02', '2021-03', '2021-04', '2021-05']
票数 2
EN

Stack Overflow用户

发布于 2020-07-08 05:53:55

摆脱if-elserelativedata中的作用就像预期的那样:

代码语言:javascript
复制
from datetime import datetime
from dateutil.relativedelta import relativedelta
need_months = list(range(-1, 12))
print([(datetime.today()+ 
        relativedelta(months=i-1)).strftime('%Y-%m') 
       for i in need_months])

输出:

代码语言:javascript
复制
['2020-05', '2020-06', '2020-07', '2020-08', '2020-09', '2020-10', '2020-11', '2020-12', '2021-01', '2021-02', '2021-03', '2021-04', '2021-05']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62788293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档