Мы можем создать файл-подобный объект с помощью BytesIO и zipfile из стандартной библиотеки.
# 3.7
from io import BytesIO
import zipfile
# .to_csv returns a string when called with no args
s = df.to_csv()
with zipfile.ZipFile(BytesIO(), mode="w",) as z:
z.writestr("df.csv", s)
# upload file here
Вы можете обратиться к upload_fileobj , чтобы настроить способ загрузкиведет себя.
yourclass.s3_output.upload_fileobj(z, ...)