Gisle_B
Gisle_B

Reputation: 47

Repeat the task of exporting multiple Panda datames into multiple csv-files

I'm somewhat new to Pandas/Python (more into SAS), but my task is the following: I have four Pandas dataframes, and I would like to export each of them into a separate csv-file. The name of the csv should be the same as the original dataframe (forsyning.csv, inntak.csv etc).

So far I've made a list with the names of the dataframes, and then tried to put the list through a for-loop in order to generate one csv after another. But I've only made it half-way through. My code so far:

df_list = ['forsyning', 'inntak', 'behandling', 'transport']

for i in df_list:  
    i.to_csv('{}.csv'.format(i), index=False, decimal=',', sep=';')

What I believe is missing is a proper reference where it says "i.to_csv" in my code above as it now only give me the error "'str' object has no attribute 'to_csv'". I justs don't know how to twist this code the right way - appreciate any advice in this matter. Thanks.

Upvotes: 2

Views: 58

Answers (2)

jezrael
jezrael

Reputation: 862641

If need write list of DataFrames to files you need 2 lists - first for DataFrames objects and second for new file names in strings:

df_list = [forsyning, inntak, behandling, transport]
names   = ['forsyning', 'inntak', 'behandling', 'transport']

So for write use zip of both lists and write df:

for i, df in zip(names, df_list):  
    df.to_csv('{}.csv'.format(i), index=False, decimal=',', sep=';')

Or use dictionary of DataFrames and loop values by dict.items():

df_dict = {'forsyning': forsyning, 'inntak':inntak,
            'behandling': behandling, 'transport': transport}

for i, df in df_dict.items():  
    df.to_csv('{}.csv'.format(i), index=False, decimal=',', sep=';')

Upvotes: 3

Suhas Mucherla
Suhas Mucherla

Reputation: 1413

Your df_list should have a list of dataframe objects. but rather you seem to have the dataframe names in str format as elements. I believe your df_list should be:

df_list = [forsyning, inntak, behandling, transport]

Upvotes: 0

Related Questions