【问题标题】:Read from CSV and store in Excel tabs从 CSV 读取并存储在 Excel 选项卡中
【发布时间】:2017-04-11 01:18:19
【问题描述】:

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

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()

如何在三个单独的工作表中获得所有三个结果?

【问题讨论】:

    标签: excel python-3.x csv pandas


    【解决方案1】:

    您正在使用每个循环重新初始化 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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2017-04-25
      • 2016-10-30
      • 2014-01-30
      • 1970-01-01
      相关资源
      最近更新 更多