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:

