我正在尝试为数据框中的日期字段生成该月的最后一天: 所以有字段开始日期,我想添加 5 列,例如 nep_0,nep_1,nep_2,nep_3,nep_4 所以对于 nep_0 逻辑如下: 最后一天(保单开始日期+相对月份(0))
对于 nep_1: 最后一天(保单开始日期+相对月份(1))
正在使用这个:
date_after_month =pol_start_date + relativedelta(months=i) nep_date=datetime.datetime(date_after_month.year,date_after_month.month,calendar.monthrange(date_after_month.year, date_after_month.month)[1])
但这用于迭代数据帧的每一行。我的数据框有 150 万行,这需要很多时间。你能告诉我一个更好的方法来实现同样的目标吗?可能正在使用应用或地图。
我还希望动态创建这些列 (nep_0,nep_1),就像不传递 0,1,2, 的相对月份参数一样。它们也应该被循环通过。
您可以使用:
from pandas.tseries.offsets import MonthEnd
cols=["nep_" + str(i) for i in range(month_count)]
for n,i in enumerate(cols):
df[i] = df["dates"] + MonthEnd(n)