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