Форматирование даты в Python - PullRequest
0 голосов
/ 02 октября 2018

У меня есть столбец «start_date», в котором данные представлены в следующем формате:

2018-03-15T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z
2017-01-14T00:01:00.000Z

Я попытался преобразовать вышеуказанный формат в «гггг-мм-дд», используя приведенный ниже код, но он возвращает результатыв предыдущем формате (с T00: 01: 00.000Z):

print(pd.to_datetime(row['start_date'], format='%Y%m%d', errors='ignore'))

Результат должен быть в следующем формате:

2018-03-15
2017-01-14
2017-01-14
2017-01-14
2017-01-14

Любые предложения приветствуются !!

1 Ответ

0 голосов
/ 02 октября 2018

Я попытался преобразовать вышеуказанный формат в "гггг-мм-дд"

Нет .Это не цель pd.to_datetime.datetime ряды хранятся внутри как целые числа.Любое похожее на дату представление datetime - это просто представление .

Аргумент format относится к формату input , а не квыход.В этом случае, чтобы преобразовать в datetime, вам не нужно указывать формат:

df['dt'] = pd.to_datetime(df['dt'], errors='coerce')

print(df)

                   dt
0 2018-03-15 00:01:00
1 2017-01-14 00:01:00
2 2017-01-14 00:01:00
3 2017-01-14 00:01:00
4 2017-01-14 00:01:00

Чтобы вернуть только дату, последующим шагом будет изменение вашей серии на object dtype:

df['dt'] = df['dt'].dt.strftime('%Y-%m-%d')

print(df)

           dt
0  2018-03-15
1  2017-01-14
2  2017-01-14
3  2017-01-14
4  2017-01-14
...