Подтвердить что ты не робот

Datetime для строки с рядом в python pandas

Мне нужно сделать эту простую вещь:

dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str

Но получится ошибка. Как преобразовать из datetime в строку

Заранее спасибо

4b9b3361

Ответ 1

Атрибут str для datetimes и вы не можете сделать dates.astype(str), вы можете вызвать apply и использовать datetime.strftime:

In [73]:

dates = pd.to_datetime(pd.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.apply(lambda x: x.strftime('%Y-%m-%d'))
Out[73]:
0    2001-01-01
1    2001-03-31
dtype: object

Вы можете изменить формат строк даты, используя то, что вам нравится: https://docs.python.org/2/library/datetime.html#strftime-and-strptime-behavior

Обновление

С версии 0.17.0 вы можете сделать это, используя dt.strftime

dates.dt.strftime('%Y-%m-%d')

теперь будет работать

Ответ 2

Начиная с версии 17.0, вы можете форматировать с помощью dt accessor:

dates.dt.strftime('%Y-%m-%d')

Ссылка

Ответ 3

Существует функция pandas, которая может быть применена к индексу DateTime в кадре данных pandas.

date = dataframe.index #date is the datetime index
date = dates.strftime('%Y-%m-%d') #this will return you a numpy array, element is string.
dstr = date.tolist() #this will make you numpy array into a list

элемент внутри списка:

u'1910-11-02'

Вам может потребоваться заменить "u".

Могут быть некоторые дополнительные аргументы, которые я должен поместить в предыдущие функции.