从CSV读取并存储在Excel选项卡中

我正在读取多个CSV(通过URL)到多个Pandas DataFrames中,并希望将每个CSV的结果存储到单独的Excel工作表(选项卡)中。 当我在for循环中保留writer.save() ,我只在一个工作表中得到最后的结果。 当我在for循环之外移动writer.save() ,我只在一个工作表中得到第一个结果。 两者都是错误的。

 import requests import pandas as pd from pandas import ExcelWriter work_statements = { 'sheet1': 'URL1', 'sheet2': 'URL2', 'sheet3': 'URL3' } for sheet, statement in work_statements.items(): writer = pd.ExcelWriter('B.xlsx', engine='xlsxwriter') r = requests.get(statement) # go to URL df = pd.read_csv(statement) # read from URL df.to_excel(writer, sheet_name= sheet) writer.save() 

我怎样才能在三个单独的工作表中得到三个结果?

您正在重新初始化每个循环的writer对象。 在循环之后,只需将其初始化一次for并保存一次文档即可。 另外,在read_csv()行中,您应该读取请求内容,而不是保存在字典中的URL(即statement ):

 writer = pd.ExcelWriter('B.xlsx', engine='xlsxwriter') for sheet, statement in work_statements.items(): r = requests.get(statement) # go to URL df = pd.read_csv(r.content) # read from URL df.to_excel(writer, sheet_name= sheet) writer.save()