Как преобразовать 2014-12-19T05: 00: 00 в правильное время данных, 2014-12 в Python - PullRequest
0 голосов
/ 24 марта 2020

Я получаю дату в данных, которая выглядит так: «2014-12-19T05: 00: 00». Я хочу преобразовать его, чтобы получить объект Date или String и получить что-то вроде "01-04-2018", что его "dd-MM-YYYY" в кадре данных. Как мне это сделать? Результат будет использован для временных рядов. Пока что результат моего временного ряда такой: возможно, потому, что он не определяет формат даты (ось x не в datetime).

enter image description here

Столбец даты: enter image description here

Ответы [ 2 ]

2 голосов
/ 24 марта 2020

Для столбца / серии данных pandas:

Преобразовать строковый столбец (dtype object ) в столбец datetime (dtype datetime64 [нс] ) используя to_datetime . Тогда, если вы хотите, чтобы другой столбец с вашими датами вернулся в выбранном вами формате строки, используйте dt.strftime .

Пример:

df = pd.DataFrame({
  "Date": ["2014-12-19T05:00:00", "2014-12-20T05:00:00", "2014-12-21T05:00:00"],
  "Value": [0, 2, 4]})
df['DateTime'] = pd.to_datetime(df['Date'])
df['MyDateTimeString'] = df['DateTime'].dt.strftime('%Y-%m-%d')

print(df)
#                   Date  Value            DateTime MyDateTimeString
# 0  2014-12-19T05:00:00      0 2014-12-19 05:00:00       2014-12-19
# 1  2014-12-20T05:00:00      2 2014-12-20 05:00:00       2014-12-20
# 2  2014-12-21T05:00:00      4 2014-12-21 05:00:00       2014-12-21

В общем:

Чтобы прочитать ваши строки в объектах datetime, используйте strptime :

import datetime

d = datetime.datetime.strptime("2014-12-19T05:00:00", "%Y-%m-%dT%H:%M:%S")

Затем, чтобы получить строковое представление этих объектов datetime, используйте strftime :

d.strftime("%d-%m-%Y")

Для более общего анализа строки в дату удобна библиотека dateparser :

import dateparser

dateparser.parse("2014-12-19T05:00:00").strftime("%d-%m-%Y")
# '19-12-2014'
dateparser.parse("December 19, 2014 at 5am").strftime("%d-%m-%Y")
# '19-12-2014'
2 голосов
/ 24 марта 2020

Я рекомендую использовать https://pypi.org/project/python-dateutil/ (установить с pip install python-dateutil.)

>>> import dateutil.parser
>>> d = dateutil.parser.isoparse('2014-12-19T05:00:00')
>>> print(d.strftime('%m-%d-%Y'))
12-19-2014
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...