Как сделать два разных формата даты в одном столбце уникальными? - PullRequest
1 голос
/ 26 апреля 2019

У меня есть один столбец, я не понимаю, как, но в одном столбце есть два разных формата.

df['Date'] = [6/24/2019,6/14/2019,2019-09-06 00:00:00,6/14/2019,6/14/2019]

Я хочу обработать его дальше, поэтому я хочу сделать это в одном формате.

df['Date'] = [6/24/2019,6/14/2019,9/06/2019,6/14/2019,6/14/2019]

Я пробовал что-то подобное

data['New_date'] = pd.to_datetime(df['Date'], format = '%m/%d/%Y')

но это дало мне эту ошибку

ValueError: данные времени от 24.06.2009 не соответствуют указанному формату

Ответы [ 3 ]

1 голос
/ 26 апреля 2019

Используйте to_datetime с обоими форматами и errors='coerce' для NaT, если они не совпадают, и замените пропущенные значения другими Series на Series.combine_first или Series.fillna их, последнее преобразование в строки на Series.dt.strftime:

s1 = pd.to_datetime(data['Date'], format='%Y-%d-%m %H:%M:%S', errors='coerce')
s2 = pd.to_datetime(data['Date'], format = '%m/%d/%Y', errors='coerce')

#2 possible solutions
data['new'] = s1.fillna(s2).dt.strftime('%m/%d/%Y')
data['new'] = s1.combine_first(s2).dt.strftime('%m/%d/%Y')
print (data)
                  Date         new
0            6/24/2019  06/24/2019
1            6/14/2019  06/14/2019
2  2019-09-06 00:00:00  06/09/2019
3            6/14/2019  06/14/2019
4            6/14/2019  06/14/2019
0 голосов
/ 26 апреля 2019
import pandas as pd
df = pd.DataFrame()
df['Date'] = ['6/24/2019','6/14/2019','2019-09-06 00:00:00','6/14/2019','6/14/2019']
df['newDate'] = pd.to_datetime(df['Date'])
print (df)

                  Date    newDate
0            6/24/2019 2019-06-24
1            6/14/2019 2019-06-14
2  2019-09-06 00:00:00 2019-09-06
3            6/14/2019 2019-06-14
4            6/14/2019 2019-06-14
0 голосов
/ 26 апреля 2019

Попробуйте импортировать класс datetime. Это позволит вам использовать функцию strptime, как показано ниже:

format = '%d/%m/%Y'
data['New_date'] = datetime.strptime('2019-09-06 00:00:00', format)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...