2016-03-15 4 views
1

У меня есть dataframe с Timestamp записей в одном столбце, созданный из строк, как так:Как применить to_datetime в столбце Dataframe pandas?

df = pd.DataFrame({"x": pd.to_datetime("MARCH2016")}) 

Теперь я хочу, чтобы выбрать из df на основе месяца, пронизывая лет, путем доступа к атрибуту datetime объекта .month , Тем не менее, to_datetime фактически создал объект Timestamp из строки, и я не могу принудить его к datetime. Следующие работы, как и ожидалось:

type(df.x[0].to_datetime()) # gives datetime object 

, но с использованием apply (в моем реальном примере жизни, конечно, я хочу сделать, учитывая, что у меня есть более чем одна строка) не будет:

type(df.x.apply(pd.to_datetime)[0]) # returns Timestamp 

Что я пропал без вести?

+1

Не уверен, что вы ожидаете, но он должен работать нормально 'ФР [«х»] дт .month' – EdChum

+0

Я просто не понимал, что 'datetime' был атрибутом объекта Timestamp', хотя я могу либо создать объект' datetime', либо объект Timestamp', и мне понадобится 'datetime' объект для доступа к атрибуту 'month' ... Спасибо! –

ответ

1

Тот факт, что это TimeStamp не имеет никакого значения здесь, вы можете получить доступ к атрибуту month с помощью .dt аксессор:.

In [79]: 
df = pd.DataFrame({"x": [pd.to_datetime("MARCH2016")]}) 
df['x'].dt.month 

Out[79]: 
0 3 
Name: x, dtype: int64 
Смежные вопросы