Borja_042
Borja_042

Reputation: 1071

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

Upvotes: 4

Views: 2580

Answers (1)

Martin Evans
Martin Evans

Reputation: 46759

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

Upvotes: 6

Related Questions