df = pds.DataFrame(np.random.rand(14, 4), columns=['a', 'b', 'c', 'd'])

def chunker(seq, size):
    return (seq[pos:pos + size] for pos in range(0, len(seq), size))
for i in chunker(df, 5):
    pass
Как эффективно перебирать последовательные фрагменты фрейма данных Pandas