Преобразование двух форматов даты в один формат панд - PullRequest
0 голосов
/ 07 июня 2018

Что было бы самым простым способом преобразовать два формата даты в пандас-фрейме данных в один?Ниже мой ввод

import pandas as pd
df = pd.DataFrame({'DOB': {0: '26/1/16 ', 1: '26/1/2016 '}})

Ожидаемый вывод:

       DOB
0   26/1/2016
1   26/1/2016

Мне нужно сохранить тот же формат даты.

Следил за комментариями и использовал pd.to_datetime

pd.to_datetime(df.DOB)

Вывод:

0   2016-01-26
1   2016-01-26

Это нормально, но я хочу сохранить исходный формат %d/%m/%Y

Я попытался использовать аргумент формата после выполнения pd.to_datetime

df.DOB=pd.to_datetime(df.DOB,format="%d/%m/%Y")

Кажется, это не меняет формат.Выходные данные:

0   2016-01-26
1   2016-01-26

Если я непосредственно выполню приведенный ниже код для предоставления формата, это выдаст ошибку, что имеет смысл, поскольку входные данные имеют другой формат

df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}})
df.DOB=pd.to_datetime(df.DOB,format="%d/%m/%Y")

ОШИБКА:

ValueError: unconverted data remains:  

Короче говоря, как мне сохранить исходный формат даты

1 Ответ

0 голосов
/ 07 июня 2018

У вас есть пробелы в строках даты.Используйте pd.Series.str.strip перед вызовом pd.to_datetime, чтобы гарантировать, что вы избежите ошибок.

Вариант 1: не указывайте формат

Здесь вам даже не нужнолишить пробела:

df = pd.DataFrame({'DOB': {0: '26/1/16 ', 1: '26/1/2016 '}})

df.DOB = pd.to_datetime(df.DOB)

print(df)

         DOB
0 2016-01-26
1 2016-01-26

Вариант 2: вырезать перед указанием формата

Предоставить format только в том случае, если вы знаете заранее о конкретном формате ваших дат.Если вы сделаете это, вам нужно будет использовать pd.Series.str.strip заранее:

df = pd.DataFrame({'DOB': {0: '26/1/2016 ', 1: '26/1/2016 '}})

df.DOB = pd.to_datetime(df.DOB.str.strip(), format='%d/%m/%Y')

print(df)

         DOB
0 2016-01-26
1 2016-01-26
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...