我有多年是使用以下语句创建的
range(datetime.now().year - 1, datetime.now().year + 1)
给出以下输出
2023
2024
我有一个由
range(1, 13)
创建的月份专栏
1
2
.
.
.
12
我想创建以下列:
202301
202302
202303
202304
.
.
.
202411
202412
我尝试了以下方法:
range(datetime.now().year - 1, datetime.now().year + 1) * 100 + range(1,13)
但是由于两个范围的维度不相等,因此会抛出错误:
unsupported operand type(s) for *: 'range' and 'int'
。
有谁知道如何用 Python 来实现这个?在我的例子中,我只有两年,实际上我有很多年。
您可以使用
date_range
:
my_range = pd.date_range(
"2023-01-01", # start
"2024-12-01", # end
freq="MS" # frequency = monthly
).strftime("%Y%m") # set the format here
您可以尝试为年份和月份创建两个范围。以所需的格式组合每年和每月,并将月份格式化为始终具有两位数。这是一个例子:
### Define the range of years
start_year = datetime.now().year - 1
end_year = datetime.now().year + 1
years = range(start_year, end_year)
### Define the range of months (1 to 12)
months = range(1, 13)
### Generate output
output = [f"{year}{month:02d}" for year in years for month in months]
### Display results
for item in output:
print(item)
from datetime import datetime
years = range(datetime.now().year - 4, datetime.now().year + 1)
months = range(1, 13)
year_month_combinations = [year * 100 + month for year in years for month in months]
print(year_month_combinations)
输出将是
[202001, 202002, 202003, 202004, 202005, ......, 202411, 202412]