在数据帧上循环并保存到 excel 文件中

Loopings over dataframe and saving into excel file

我正在尝试遍历数据框并将每个过滤器保存到 Excel 文档中的不同选项卡上。出于某种原因,我只将最后一个循环保存到 excel 文件中。这是我的代码:

df = pd.DataFrame({'Number':[1,2,3,4,5],
                   'Name':['John','Paul','Darren','John','Darren']})
names = ['John','Paul','Darren']


for k,v in enumerate(names):
    this_filter = df[df['Name'] == v]
    writer = pd.ExcelWriter(r'C:\Users\Username\Desktop\somefilename.xlsx', engine = 'xlsxwriter')
    this_filter.to_excel(writer,sheet_name = str(k),index = False)
    writer.save()

感谢您的帮助!

您在每次迭代中创建不同的编写器对象,覆盖前一个。你只需要将它移出循环,最后关闭编写器,它应该可以正常工作:

df = pd.DataFrame({'Number':pd.Series([1,2,3,4,5]),'Name':pd.Series(['John','Paul','Darren','John','Darren'])})
names = ['John','Paul','Darren']

writer = pd.ExcelWriter(r'C:\Users\Username\Desktop\somefilename.xlsx', engine = 'xlsxwriter')


for k,v in enumerate(names):
    this_filter = df[df['Name'] == v]
    this_filter.to_excel(writer,sheet_name = str(k),index = False)
writer.close()