Большие ответы уже.. Я так или иначе чувствую потребность добавить обобщенную форму здесь.. Полагайте, что этот scenario:-
Говорит, что Ваш xls/csv имеет строки спама в лучших 2 строках (строка № 0,1). Строка № 2 (3-я строка) является реальным заголовком, и Вы хотите загрузить 10 строк, начинающих с row#50 (т.е. 51-ю строку).. Вот snippet:-
pd.read_csv('test.csv', header=2, skiprows=range(3, 50), nrows=10)
Чтобы подробно остановиться на ответе @AlexRiley, skiprows
, аргумент берет список чисел, который определяет что строки пропустить. Так:
pd.read_csv('test.csv', sep='|', skiprows=range(1, 10))
совпадает с:
pd.read_csv('test.csv', sep='|', skiprows=[1,2,3,4,5,6,7,8,9])
лучший способ пойти об игнорировании определенных строк состоял бы в том, чтобы создать Ваш черный список (или вручную или с функцией как range
, который возвращает список целых чисел), и передайте его skiprows
.
Если Вы выполняете итерации через длинный файл CSV, можно использовать аргумент chunksize . Если по некоторым причинам необходимо вручную ступить через него, можно попробовать следующее, пока Вы знаете, сколько повторений необходимо пройти:
for i in range(num_iters):
pd.read_csv('test.csv', sep='|', header=0,
skiprows = range(i*10 + 1, (i+1)*10), nrows=10)
Если необходимо пропустить/отбросить определенные строки, сказать первые 3 строки (т.е. 0,1,2) и затем еще 2 строки (т.е. 4,5). Можно использовать следующее для сохранения строки заголовка:
df = pd.read_csv(file_in, delimiter='\t', skiprows=[0,1,2,4,5], encoding='utf-16', usecols=cols)