Как гомогенизировать тип даты в столбце данных pandas? - PullRequest
1 голос
/ 10 марта 2020

У меня в столбце данных есть столбец «Дата» с двумя типами дат (ГГГГ-ДД-ММ 00:00:00 и ГГГГ-ДД-ММ):

                        Date
0        2023-01-10 00:00:00
1                 2024-27-06
2        2022-07-04 00:00:00
3                        NaN
4                 2020-30-06

(вы можете использовать pd .read_clipboard (sep = '\ s \ s +') после копирования предыдущего кадра данных, чтобы поместить его в свой блокнот)

Я хотел бы иметь только тип YYYY-MM-DD. Следовательно, я хотел бы иметь:

                        Date
0                 2023-10-01
1                 2024-06-27
2                 2022-04-07
3                        NaN
4                 2020-06-30

Как, пожалуйста, я могу это сделать?

1 Ответ

1 голос
/ 10 марта 2020

Используйте Series.str.replace с to_datetime и format параметром:

df['Date'] = pd.to_datetime(df['Date'].str.replace(' 00:00:00',''), format='%Y-%d-%m')
print (df)

        Date
0 2023-10-01
1 2024-06-27
2 2022-04-07
3        NaT
4 2020-06-30

Другая идея с соответствием обоим форматам:

d1 = pd.to_datetime(df['Date'], format='%Y-%d-%m', errors='coerce')
d2 = pd.to_datetime(df['Date'], format='%Y-%d-%m 00:00:00', errors='coerce')

df['Date'] = d1.fillna(d2)
...