我正在try 编写Python代码,该代码需要下个月的第一个月并创建接下来12个月的框架.我try 过两种方法,但都不起作用.

  1. 我创建了FOR LOOP,但我坚持认为它没有将范围存储在列表中.
  2. 我遇到一个值错误:月份必须在1. 12所以我也被困住了.我可以获得任何帮助吗?
# FIRST TRY
# import packages
# python
import pandas as pd
import numpy as np
import datetime as dt
from datetime import timedelta
from datetime import datetime 
from datetime import date
from dateutil.relativedelta import relativedelta

#get todays date
today = dt.date.today()

# Get the first day of next month
first_day_next_month = (today.replace(day=1) + dt.timedelta(days=32)).replace(day=1)

# Get the first day of the next 12 months
first_day_next_12_months = []
for i in range(1, 13):
    next_month = first_day_next_month + relativedelta(months=i)
first_day_next_12_months.append(next_month)

print(first_day_next_12_months)
#SECOND TRY
# import packages
# python
import pandas as pd
import numpy as np
import datetime as dt
from datetime import timedelta
from datetime import datetime 
from datetime import date
from dateutil.relativedelta import relativedelta

#get todays date
today = dt.date.today()

# Get the first day of next month
first_day_next_month = (today.replace(day=1) + dt.timedelta(days=32)).replace(day=1)
# Get the first day of next month
first_day_next_month = (today.replace(day=1) + dt.timedelta(days=32)).replace(day=1)
print("First day of next month:", first_day_next_month)
# Get the first day of the next 12 months
first_day_next_12_months = []
for i in range(1, 13):
   next_month = (first_day_next_month.replace(month=first_day_next_month.month + i-1) + datetime.timedelta(days=32)).replace(day=1)
   first_day_next_12_months.append(next_month)
print("First day of the next 12 months:")
for date in first_day_next_12_months:
   print(date)

推荐答案

如果使用pandas.DataFrame,则通常不需要for个循环.

只需做:

import pandas as pd
import datetime as dt
from dateutil.relativedelta import relativedelta

today = dt.date.today()
first_day_next_month = (today.replace(day=1) + relativedelta(months=1))
first_day_next_12_months = [first_day_next_month + relativedelta(months=i) for i in range(12)]
df_months = pd.DataFrame(first_day_next_12_months, columns=['First Day of Month'])

Python相关问答推荐

Django:如何将一个模型的唯一实例创建为另一个模型中的字段

不同数据类型的Python成员变量不会在具有相同优先级的不同线程中更新

想要使用Polars groupby_Dynamic来缩减时间序列收件箱(包括空垃圾箱)

Pandas使用过滤器映射多列

Django序列化器没有验证或保存数据

从Python调用GMP C函数时的分段错误和内存泄漏

过滤绕轴旋转的螺旋桨

当值是一个integer时,在Python中使用JMESPath来验证字典中的值(例如:1)

从今天起的future 12个月内使用Python迭代

如何让我的Tkinter应用程序适合整个窗口,无论大小如何?

Python:在类对象内的字典中更改所有键的索引,而不是仅更改一个键

使用SciPy进行曲线匹配未能给出正确的匹配

pandas DataFrame GroupBy.diff函数的意外输出

@Property方法上的inspect.getmembers出现意外行为,引发异常

将特定列信息移动到当前行下的新行

如何标记Spacy中不包含特定符号的单词?

如何访问所有文件,例如环境变量

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

SQLAlchemy bindparam在mssql上失败(但在mysql上工作)

如何使用两个关键函数来排序一个多索引框架?