按熊猫中的不同月份数更改业务月份结束日期



我有一个数据帧,其中Date列在datetime64中,Month列在float中有不同的整数。

Date          Month    New_BDate
2020-06-30    0        2020-06-30
2020-06-30    -1       2020-05-29
2020-06-30    -2       2020-04-30
2020-06-30    -3       2020-03-31
2020-05-29    0        2020-05-29
2020-05-29    -1       2020-04-30
import pandas as pd
df['New_BDate'] = df['Date'] + df['shift'].map(pd.tseries.offsets.BusinessMonthEnd())

为什么我会出现以下错误,我应该如何解决?还是有更好的选择
***属性错误:"float"对象没有属性"year">

感谢

以下是

import numpy as np
import pandas as pd
df['New_BDate'] = (
df.assign(Date=pd.to_datetime(df.Date))
.apply(lambda x: x['Date'] + np.timedelta64(x['Month'], 'M'), axis=1)
)

df['New_BDate'] = (
df.assign(Date=pd.to_datetime(df.Date))
.apply(lambda x: x['Date'] + pd.tseries.offsets.BusinessMonthEnd(x['Month']), axis=1)
)
from dateutil.relativedelta import relativedelta
df['New_BDate'] = df.apply(lambda x: x['Date'] + relativedelta(months=x['Month']), axis=1)

最新更新