62
задан 25 March 2016 в 13:48

4 ответа

Большие ответы уже.. Я так или иначе чувствую потребность добавить обобщенную форму здесь.. Полагайте, что этот 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)

6
ответ дан 31 October 2019 в 14:09

Чтобы подробно остановиться на ответе @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.

3
ответ дан 31 October 2019 в 14:09

Если Вы выполняете итерации через длинный файл 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)
1
ответ дан 31 October 2019 в 14:09

Если необходимо пропустить/отбросить определенные строки, сказать первые 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)
0
ответ дан 31 October 2019 в 14:09

Другие вопросы по тегам:

Похожие вопросы: