0

我的代码有问题,不知道出了什么问题。

我的问题的背景:

  • 我使用 pandas 从网上查询股价数据(多只股票)。
  • 然后,将数据导出到现有的 excel 文件中。
  • 数据框确实有数据。
  • 但是,文件完成后没有数据(我同时使用 ExcelWriter 和 itertuples,但不成功)。

请帮助,非常感谢。请参阅下面的代码:

wb = op.load_workbook(file_location)
full_path = os.path.abspath(file_location)

for stock in stocklist:
   if stock in avail_sheets:
      #Delete existing tabs for having fresh start.
      wb.remove(wb[stock])   

   wb.create_sheet(stock)
   symbol = stock+".AX"  #to specify ASX stock
   url = get_url(symbol, start_date, end_date)

   stock_data = pd.read_csv(url)
   writer = pd.ExcelWriter(full_path)
   stock_data.to_excel(writer, sheet_name =stock ,index = False, header = True)
   writer.save()

   # current_sheet = wb[stock]
   # for row in stock_data.itertuples(index=False):
   #     current_sheet.append(row)

wb.save(file_location) 
4

1 回答 1

0

根据熊猫文档熊猫文档

如果要保存到多个工作表并且必须指定写入文件的模式,则应在使用ExcelWriter对象时使用上下文管理器:

  1. 'a' = 追加。
  2. 'r' = 阅读。
  3. 'w' = 写。

,如果只有一张表只是将 output.xlsx 文件传递​​给 .to_excel() 方法并指定工作表名称。

`
 # for single sheet
 stock_data.to_excel('output.xlsx', sheet_name=stock, index=False, header=True)

 # for multiple sheets or even single sheet
 with pd.ExcelWriter('output.xlsx', mode='a') as writer:
      stock_data.to_excel(writer, sheet_name=stock, index=False, header=True)
`
于 2021-02-24T11:36:11.217 回答