Я пытаюсь преобразовать новый столбец во фрейме данных с помощью функции, основанной на значениях в столбце даты, но получаю сообщение об ошибке, указывающее: «Объект Timestamp не имеет атрибута dt». Однако, если я запустил это вне функции, атрибут dt будет работать нормально.
Любые указания будут оценены.
Этот код работает без проблем:
sample = {'Date': ['2015-07-02 11:47:00', '2015-08-02 11:30:00']}
dftest = pd.DataFrame.from_dict(sample)
dftest['Date'] = pd.to_datetime(dftest['Date'])
display(dftest.info())
dftest['year'] = dftest['Date'].dt.year
dftest['month'] = dftest['Date'].dt.month
Этот код выдает мне сообщение об ошибке:
sample = {'Date': ['2015-07-02 11:47:00', '2015-08-02 11:30:00']}
dftest = pd.DataFrame.from_dict(sample)
dftest['Date'] = pd.to_datetime(dftest['Date'])
def CALLYMD(dftest):
if dftest['Date'].dt.month>9:
return str(dftest['Date'].dt.year) + '1231'
elif dftest['Date'].dt.month>6:
return str(dftest['Date'].dt.year) + '0930'
elif dftest['Date'].dt.month>3:
return str(dftest['Date'].dt.year) + '0630'
else:
return str(dftest['Date'].dt.year) + '0331'
dftest['CALLYMD'] = dftest.apply(CALLYMD, axis=1)
Наконец, я открыт для любых предложений о том, как улучшить этот код, поскольку я все еще учусь.