Преобразование столбца со смешанными строками в фрейм данных pandas с датой эпохи

#python #pandas #dataframe

#python #pandas #фрейм данных

Вопрос:

У меня есть столбец фрейма данных со значениями типа

 $none
1558044313727
$none
1558058614585
...
  

Я попробовал приведенный ниже запрос, событие с errors='ignore' ним не конвертируется.

 df['epoch_date'] = pd.to_datetime(df['epoch_date'], unit='ms')
ERROR: ValueError: non convertible value $none with the unit 'ms'
  

Как мне игнорировать $none или преобразовать его в значения NaN и использовать все значения datetime?

Ответ №1:

Попробуйте использовать errors = 'coerce' :

 df['epoch_date'] = pd.to_datetime(df['epoch_date'], unit='ms', errors = 'coerce')
  

Это преобразует ваши '$none' значения (и любой другой недопустимый синтаксический анализ) в NaT , который NaN эквивалентен для datetime64[ns] типов.

errors = 'ignore' сбой, потому что он просто возвращает входные данные при неверном синтаксическом анализе, поэтому в конце он пытается вставить строку в объект datetime, что по понятным причинам не удается.