Прочитать все, кроме последней строки CSV-файла в pandas



У меня есть CSV-файлы, которые я читаю в pandas с:



#!/usr/bin/env python

import pandas as pd
import sys

filename = sys.argv[1]
df = pd.read_csv(filename)


К сожалению, последняя строка этих файлов часто повреждена (имеет неправильное количество запятых). В настоящее время я открываю каждый файл в текстовом редакторе и удаляю последнюю строку.



Можно ли удалить последнюю строку в том же скрипте python / pandas, который загружает CSV, чтобы избежать необходимости выполнять этот дополнительный неавтоматизированный шаг?

566   2  

2 ответов:

Пас error_bad_lines=False и он пропустит эту строку автоматически

df = pd.read_csv(filename, error_bad_lines=False)

Преимущество error_bad_lines в том, что он будет пропускать и не Борк на любых ошибочных строках, но если последняя строка всегда Дафф, то skipfooter=1 лучше

Спасибо @DexterMorgan за указание на то, что опция skipfooter заставляет движок использовать движок python, который медленнее, чем движок c для разбора csv.

Читать http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.read_csv.html . здесь аргумент 'skipfooter' можно использовать для указания отсутствия строк ,которые вы не хотите читать.csv-файл с конца. Может быть, это поможет вам.

Comments

    Ничего не найдено.