Объект отметки времени не имеет атрибута dt - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь преобразовать новый столбец во фрейме данных с помощью функции, основанной на значениях в столбце даты, но получаю сообщение об ошибке, указывающее: «Объект 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)

Наконец, я открыт для любых предложений о том, как улучшить этот код, поскольку я все еще учусь.

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Полагаю, вам следует удалить .dt во втором случае. Когда вы применяете его к каждому элементу, .dt необходим, когда это группа данных, если это только один элемент, который вам не нужен .dt, иначе он вызовет {AttributeError: объект 'Timestamp' не имеет атрибута 'dt' }

ссылка: { ссылка }

0 голосов
/ 09 июля 2020

Посмотрев документацию по меткам времени, я обнаружил, что удалил .dt и просто выполнял работы .year и .month. Однако я все еще не понимаю, почему он работает в первом коде, но не работает во втором коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...