2016-06-08 4 views
1

У меня есть столбец DataFrame, где значение имеет тип строки «6 июня 2016 года, 6», и я хочу преобразовать его в DataTime как формат «YYYY-MM-DD HH: MM».Преобразовать строковый столбец в формат DateTime

При попытке конвертировать, просто принимая значение, я смог преобразовать его в правильный формат.

import datetime 
stringDate = "June 6, 2016, 11" 
dateObject = datetime.datetime.strptime(stringDate, "%B %d, %Y, %H") 
print dateObject 

**Output : 2016-06-06 11:00:00** 

Но когда я пробовал разные варианты, чтобы применить то же преобразование на питон dataframe колонки я не получаю часть времени в преобразовании.

**Option1** 
df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H").date()) 

**Option2** 
df['Date'] = pd.to_datetime(df['Date'] = df.Date.apply(lambda x: dt.datetime.strptime(x, "%B %d, %Y, %H")) 

Выход: в обоих случаях получили 2016-06-06

Любые предложения будут оценены.

ответ

2

Я думаю, вам нужно добавить параметр format в to_datetime:

print (pd.to_datetime('June 6, 2016, 11', format='%B %d, %Y, %H')) 
2016-06-06 11:00:00 

Он работает с DataFrame тоже:

df = pd.DataFrame({'Date':['June 6, 2016, 11', 'May 6, 2016, 11']}) 
print (df) 
       Date 
0 June 6, 2016, 11 
1 May 6, 2016, 11 

print (pd.to_datetime(df['Date'], format='%B %d, %Y, %H')) 
0 2016-06-06 11:00:00 
1 2016-05-06 11:00:00 
Name: Date, dtype: datetime64[ns] 
+0

'Спасибо за ответ. –

+0

Если бы мой ответ был полезным, не забудьте [принять] (http://meta.stackexchange.com/a/5235/295067). Вы также можете перевернуть - нажмите на маленький треугольник над отметкой «0» выше принимающей метки. Благодарю. – jezrael

+0

Теперь конверсия работает. –

Смежные вопросы