使用循环创build带有Dataframe Pandas的Excel表格

我正在研究这个function,为幻想足球信息的网站,并写入一个Excel文件。 最终,我希望在Excel工作簿中的每个工作表中有每周的信息。

下面发布的代码完美工作,直到我想将其写入Excel工作簿。 工作手册最后只有17周的数据。 看来,每当我真的希望每次添加表单时,pandasExcelWriter都会覆盖表单。

我无法find任何关于在pandasExcelWriter中使用循环创build工作表的任何信息,所以我不完全确定是否可以按照我想要的方式完成工作。

import bs4 as bs import urllib.request import pandas as pd from pandas import ExcelWriter for week in range(1,18): #IGNORE MOST OF THIS STUFF BELOW BECAUSE IT WORKS AS IS source = urllib.request.urlopen('http://fftoday.com/stats/playerstats.php?Season=2015&GameWeek='+str(week)+'&PosID=10&LeagueID=1').read() soup = bs.BeautifulSoup(source, 'lxml') table = soup.find('table', width='100%', border='0', cellpadding='2', cellspacing='1') table_rows = table.find_all('tr') player_data = {} for tr in table_rows: td = tr.find_all('td') row = [i.text for i in td] if row != ['\xa0 ', 'Passing', 'Rushing', 'Fantasy'] and row != ['Player\nSort First: \n\n\n\xa0\xa0\n\t\tLast: \n\n\n', 'Team\n\n\n\n', 'G\n\n\n\n', 'Comp\n\n', 'Att\n\n', 'Yard\n\n', 'TD\n\n', 'INT\n\n', 'Att\n\n', 'Yard\n\n', 'TD\n\n', 'FPts\n\n\n\n', 'FPts/G\n\n\n\n']: names = str(row[0]).encode('utf-8') names = str(names)[:-1].split()[1:] names[0:] = [' '.join(names[0:])] row[0] = names[0] player_data[str(row[0])] = row[1:] df_qb = pd.DataFrame.from_dict(player_data) df_qb = df_qb.transpose() df_qb.columns = ['Team', 'Games', 'Completions', 'Att', 'Yards', 'TD', 'INT', 'Rush Att', 'Rush Yards', 'Rush TD', 'Fantasy Points', 'Fantasy Points per Game'] #EVERY THING WORKS JUST FINE UNTIL RIGHT HERE writer = ExcelWriter('Weekly Fantasy Football Data.xlsx') df_qb.to_excel(writer, 'Week ' + str(week)) writer.save() 

所有你需要做的就是将循环中的写入器删除

例如

 a = numpy.arange(5) w = ExcelWriter('e.xlsx') for i in a: df = pd.DataFrame({'a':np.random.randint(1,100,10)}) df.to_excel(w, sheet_name='sheet ' + str(i)) w.save()