Не уверен, будет ли это необходимо для ускорения, но вы разбили свой df на отдельные df и записали их.
# split df into 10 chunks
batch = 0
for chunk in np.array_split(df, 10):
filename = 'my_filename_' + str(batch) + '.csv'
chunk.to_csv(filename, compression='zip')
batch +=1
Вы могли бы параллельно обработать это и записать каждый файл асинхронно, однако это вероятноувеличить использование памяти