Лихо вы поставили ошибку в игнор, а зря, потому что в ошибке кроется всегда ответ.
ValueError: time data '2020-05-12 10:30:00' does not match format '%d %m %Y %H:%M' (match)
Данный формат не соответствует тому формату, который вы задали (черточки вместо пробелов).
Не совсем понятно, почему вы решили, будто пандас может привести кучу разрозненных форматов к одному, нет, пандас так не может. Пандас переводит один заданный формат в другой, не иначе.
Вам следует написать функцию, которая будет обрабатывать столбец с датой и применять к одному формату даты один обработчик, а к другому формату другой обработчик.
Для вашего примера я написал это:
import pandas as pd
df = pd.DataFrame(data=[['ab', '8 05 2020 11:23'],
['sa', '2020-05-12 10:30:00'],
['opk', None],
['rt', '2020-04-30 13:22:00'],
['eun', None],
['ert', '2020-04-17 11:39:00']], columns=['Words','Дата'])
def convert_to_datetime(series):
result = pd.Series(index=series.index)
idx1 = ['-' in i if i is not None else True for i in series] # Ищет формат даты через "-" и None
idx2 = [not i for i in idx1] # Делает замену True на False и False на True
result[idx1] = pd.to_datetime(series[idx1], format='%Y-%m-%d %H:%M')
result[idx2] = pd.to_datetime(series[idx2], format='%d %m %Y %H:%M')
return result
df['Дата'] = convert_to_datetime(df['Дата'])
df
Если добавится третий формат (или даже несколько), то придется переписывать код, но суть думаю вы поняли.