我有一个数据帧,其中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)