Подтвердить что ты не робот

Pandas dataframe read_csv по плохим данным

Я хочу прочитать в очень большом csv (не может быть открыто в excel и отредактирован легко), но где-то около 100 000-й строки, есть строка с одним дополнительным столбцом, приводящим к сбою программы. Эта строка ошибочна, поэтому мне нужен способ игнорировать тот факт, что это дополнительный столбец. Существует около 50 столбцов, поэтому жесткое кодирование заголовков и использование имен или сокращений не является предпочтительным. Я также, возможно, столкнусь с этой проблемой в других csv и хочу получить общее решение. К сожалению, я не нашел ничего в read_csv. Код такой же простой, как и этот:

def loadCSV(filePath):
    dataframe = pd.read_csv(filePath, index_col=False, encoding='iso-8859-1', nrows=1000)
    datakeys = dataframe.keys();
    return dataframe, datakeys
4b9b3361

Ответ 1

перейдите error_bad_lines=False, чтобы пропустить ошибочные строки:

error_bad_lines: boolean, default True Линии со слишком большим количеством полей (например, строка csv со слишком большим количеством запятых) по умолчанию вызовет исключение, которое не будет создано, и DataFrame не будет возвращен. Если False, то эти "плохие строки" будут удалены из DataFrame, который вернулся. (Действителен только с C-парсером)