Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Create a Zip with 2 CSV on it

I am exporting 2 dataframes as csv, like these ones could be:

data1 = {'isin':['isin1','isin2','isin3'],'ticker_QF':['ticker1','ticker3','ticker3']}

df_QF = pd.DataFrame(data1)

data2 = {'isin':['isin1','isin1','isin2','isin3'],'ticker_BBG':['ticker1','ticker3','ticker4','ticker5']}
df_BBG = pd.DataFrame(data2)

If I want to create a zip foldier with both csv on it, how can I do it? Thanks in advance

like image 504
Borja_042 Avatar asked Sep 01 '25 06:09

Borja_042


1 Answers

You can use Python's zipfile library to help with this as follows:

import pandas as pd
import zipfile

data1 = {'isin':['isin1','isin2','isin3'],'ticker_QF':['ticker1','ticker3','ticker3']}
data2 = {'isin':['isin1','isin1','isin2','isin3'],'ticker_BBG':['ticker1','ticker3','ticker4','ticker5']}

with zipfile.ZipFile('my_csvs.zip', 'w') as csv_zip:
    csv_zip.writestr("data1.csv", pd.DataFrame(data1).to_csv())
    csv_zip.writestr("data2.csv", pd.DataFrame(data2).to_csv())

This would result in one zip file called my_csvs.zip containing two CSV files. Also, the CSV file are created directly inside the ZIP file and no additional files are created.

Tested in Python 3.7.3

like image 117
Martin Evans Avatar answered Sep 02 '25 18:09

Martin Evans