AttributeError: можно использовать только.DT-аксессор со значениями типа datetimelike
Привет я использую панды для преобразования столбца в месяц. Когда я читаю свои данные, они являются объектами:
Date object
dtype: object
поэтому я сначала делаю их на сегодняшний день, а затем пытаюсь сделать их месяцами:
import pandas as pd
file = '/pathtocsv.csv'
df = pd.read_csv(file, sep = ',', encoding='utf-8-sig', usecols= ['Date', 'ids'])
df['Date'] = pd.to_datetime(df['Date'])
df['Month'] = df['Date'].dt.month
также, если это помогает:
In [10]: df['Date'].dtype
Out[10]: dtype('O')
Итак, ошибка, которую я получаю, выглядит так:
/Library/Frameworks/Python.framework/Versions/2.7/bin/User/lib/python2.7/site-packages/pandas/core/series.pyc in _make_dt_accessor(self)
2526 return maybe_to_datetimelike(self)
2527 except Exception:
-> 2528 raise AttributeError("Can only use .dt accessor with datetimelike "
2529 "values")
2530
AttributeError: Can only use .dt accessor with datetimelike values
редактировать:
столбцы даты выглядят следующим образом:
0 2014-01-01
1 2014-01-01
2 2014-01-01
3 2014-01-01
4 2014-01-03
5 2014-01-03
6 2014-01-03
7 2014-01-07
8 2014-01-08
9 2014-01-09
у вас есть идеи? Большое спасибо!
1 ответов
ваша проблема в том, что to_datetime
молча не удалось, поэтому dtype остался как str/object
, Если вы установите param errors='coerce'
тогда, если преобразование не удается для любой конкретной строки, то эти строки установлены в NaT
.
df['Date'] = pd.to_datetime(df['Date'], errors='coerce')
поэтому вам нужно выяснить, что не так с этими конкретными значениями строк.
посмотреть docs