Переместить все строки с ошибками при обработке в другой фрейм данных? - PullRequest
0 голосов
/ 02 октября 2018

Я конвертирую некоторые строки в datetime с помощью следующей команды:

polly_jun_jul_trans['Imp_Trans_Date'] = pd.to_datetime(polly_jun_jul_trans['Imp_Trans_Date'])
polly_jun_jul_trans['Imposition_Date_of_Hearing'] = pd.to_datetime(polly_jun_jul_trans['Imposition_Date_of_Hearing'])

Однако некоторые из моих значений содержат ошибки, например: ('Неизвестный формат строки:', '29 / 06n2018«).

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

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Сначала найдите объединение проблемных рядов через pd.Series.isnull.Это означает, что если либо из 2 datetime преобразований завершится неудачей для строки, то эта строка даст False;в противном случае True.

df['col1'] = pd.to_datetime(df['col1'], errors='coerce')
df['col2'] = pd.to_datetime(df['col2'], errors='coerce')

error_bool = df['col1'].isnull() | df['col2'].isnull()

Затем используйте логическое индексирование:

main = df[~error_bool].copy()
errors = df[error_bool].copy()

Я использовал pd.DataFrame.copy, чтобы гарантировать, что новые кадры данных больше не будут ссылаться наисходный кадр данных, содержащий все строки.

0 голосов
/ 02 октября 2018

Исходя из вашего исходного вопроса, касающегося того, как удалять строки, которые вызывают ошибки.

Вы можете использовать ключевое слово errors pd.to_datetime(), показанное ниже:

ошибки: {'игнорировать', 'поднять', 'принуждать'}, по умолчанию 'поднять'

Если 'поднять', то неправильный синтаксический анализ вызовет исключение. Если 'принудительно', то будет установлен неправильный синтаксический анализas NaT Если «игнорировать», то неправильный синтаксический анализ вернет ввод

Вы можете использовать pd.to_datetime( ____, errors='coerce'), а затем использовать dropna().

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