Home > Mobile >  How to iterate over a list of objects and generate an excel file out of those objects?
How to iterate over a list of objects and generate an excel file out of those objects?

Time:02-04

I'm trying to produce an excel file containing records of the objects in a list. I get a file with only the last record. It seems that the records over write each other. Here is my code:

import pandas as pd 
class dog:
    def __init__(self, id,type, name, age):
        self.id = id
        self.type = type
        self.name = name
        self.age = age
dogs = []
for i in range (10):
    newDog = dog(i, 'any', 'any2', i 1)
    dogs.append(newDog)

fname = "StatisticsDogs.xlsx"
writer = pd.ExcelWriter(fname, engine='xlsxwriter')
for d in dogs:
    df = pd.DataFrame({'dog ID':[d.id], 'dog NAme':[d.name]})
    df.to_excel(writer, sheet_name='Sheet1')
writer.save()

Thanks in advance.

CodePudding user response:

the answer is:


import pandas as pd 
class dog:
    def __init__(self, id,type, name, age):
        self.id = id
        self.type = type
        self.name = name
        self.age = age
dogs = []
for i in range (10):
    newDog = dog(i, 'any', 'any2', i 1)
    dogs.append(newDog)
lisIDs = []
lisNames = []
for d in dogs:
    lisIDs.append(d.id)
    lisNames.append(d.name)
fname = "StatisticsDogs.xlsx"
writer = pd.ExcelWriter(fname, engine='xlsxwriter')
for d in dogs:
    #df = pd.DataFrame({'dog ID':[d.id], 'dog NAme':[d.name]})
    df = pd.DataFrame({'dog ID':lisIDs, 'dog NAme':lisNames})
    df.to_excel(writer, sheet_name='Sheet1')
writer.save()

CodePudding user response:

Hello there you could also use the python xlwt library: enter image description here

  •  Tags:  
  • Related