【发布时间】:2017-07-26 20:30:01
【问题描述】:
我有一个对象数组。我正在尝试遍历该数组并创建一个新的数据框,然后将其保存到电子表格中。
我的对象变量是这样的:
def __init__(self, question, total):
self.question = str(question)
self.total = float(total)
self.answers = {}
question是一串问题文本
total 是问题收到的总票数
answers 是一个字典,其中包含如下数据:{'Yes': 5, 'No': 2, 'Maybe': 1}、一个用于选择答案的字符串和一个表示收到答案的投票数
我正在尝试遍历 Question 对象的 q_array,附加问题和总数,然后在下面的 for 循环中遍历答案项目并将其附加到其他行。
这是所需的输出/工作表:
Question Answer Total Percent
What color is the sky? 22
Red 8 36.4%
Green 2 9.1%
Blue 12 54.5%
这是我当前的代码:
writer = pd.ExcelWriter('master.xlsx')
sdf = pd.DataFrame(columns=('Question', 'Answer', 'Total', 'Percent'))
for data in q_array:
sdf.append({'Question': data.get_question(), 'Total': data.get_total()}, ignore_index=True)
for answer, number in data.get_answers().items():
sdf.append({'Answer': answer, 'Total': number, 'Percent': number_to_percent(number, data.get_total())}, ignore_index=True)
sdf.to_excel(writer, 'stats', index=False)
writer.save()
我正在尝试使用.append() 添加新行并选择行中的数据。但是当我打印sdf 时,它是空的,并且在电子表格中它有列,但其余数据丢失了。我究竟做错了什么?感谢您提供的任何帮助!
【问题讨论】:
标签: python excel python-3.x pandas