Python 使用过去三个月的第一天和最后一天生成数据帧
我想用熊猫生成以下数据帧:Python 使用过去三个月的第一天和最后一天生成数据帧,python,pandas,Python,Pandas,我想用熊猫生成以下数据帧: print(last_three_months) TimePeriod.Start TimePeriod.End 1 2021-03-01 2021-04-01 2 2021-04-01 2021-05-01 3 2021-05-01 2021-05-31 我可以使用以下代码生成某个月的第一天和最后一天: from datetime import datetime first_day_month = d
print(last_three_months)
TimePeriod.Start TimePeriod.End
1 2021-03-01 2021-04-01
2 2021-04-01 2021-05-01
3 2021-05-01 2021-05-31
我可以使用以下代码生成某个月的第一天和最后一天:
from datetime import datetime
first_day_month = datetime(2021, 3, 1)
last_day_month = firstday_month + pd.offsets.MonthEnd(1)
是否有一种方法可以生成此数据帧,而不必使用冗长的代码(例如)逐个定义每个日期
month_x = int(pd.to_datetime("today").strftime("%m"))
monthx_1 = int(pd.to_datetime("today").strftime("%m"))-1
...
并将每个结果值逐个分配给df块
我猜有一种更简单的方法可以做到这一点。您可以使用
pd.date\u range
生成数据帧,如下所示:
start = pd.Timestamp(year=2021, month=3, day=1)
df = pd.DataFrame({"Start": pd.date_range(start, periods=3, freq="MS"),
"End": pd.date_range(start, periods=3, freq="M")})
df
现在是:
Start End
0 2021-03-01 2021-03-31
1 2021-04-01 2021-04-30
2 2021-05-01 2021-05-31
您可以使用
pd.date\u range
生成数据框,如下所示:
start = pd.Timestamp(year=2021, month=3, day=1)
df = pd.DataFrame({"Start": pd.date_range(start, periods=3, freq="MS"),
"End": pd.date_range(start, periods=3, freq="M")})
df
现在是:
Start End
0 2021-03-01 2021-03-31
1 2021-04-01 2021-04-30
2 2021-05-01 2021-05-31
嘿它表示句点=3的语法无效。你不明白这个错误吗?抱歉,我已经编辑过了。我太沉迷于格式化了-谢谢。目前,这使得日期之间的时间间隔为2个月,而不是1个月。我正在修补变量以使其工作。重新编辑。希望这就是你需要的:)是的,这正是我需要的。非常感谢。嘿。它表示句点=3的语法无效。你不明白这个错误吗?抱歉,我已经编辑过了。我太沉迷于格式化了-谢谢。目前,这使得日期之间的时间间隔为2个月,而不是1个月。我正在修补变量以使其工作。重新编辑。希望这就是你需要的:)是的,这正是我需要的。非常感谢你。