Datetime для строки с рядом в python pandas
Мне нужно сделать эту простую вещь:
dates = p.to_datetime(p.Series(['20010101', '20010331']), format = '%Y%m%d')
dates.str
Но получится ошибка. Как преобразовать из datetime в строку
Заранее спасибо
Ответы
Ответ 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".
Могут быть некоторые дополнительные аргументы, которые я должен поместить в предыдущие функции.