将CSV内容写入Excel会产生空白表

时间:2019-06-04 00:16:36

标签: python pandas csv xlsx raspbian-stretch

将DataFrame写入Excel文件会使工作表中的数据为零。

我正在创建一个机器人“侦察应用程序”。在大约两天内,它会接收多个.csv文件。 CSV文件将以四位数,连字符和匹配号命名。例如“ 2073-18.csv”。每个团队将收到多个文件。我需要为每个团队提供一张工作表,并且该团队需要在同一张工作表上包含每个csv文件的内容。创建工作表正常,将数据写入这些工作表无效。

import os
import glob
import csv
from xlsxwriter.workbook import Workbook
import pandas as pd
import numpy as np
#from sqlalchemy import create_engine
from openpyxl import load_workbook

os.chdir ("/EagleScout")
path = '.'
extension = 'csv'
engine = 'xlsxwriter'

files_in_dir = [ f for f in glob.glob('*.csv')]

workbook = Workbook('Tournament.xlsx')

with pd.ExcelWriter('Tournament.xlsx') as writer:
    for csvfile in files_in_dir:
        df = pd.read_csv(csvfile)
        fName, fExt = (os.path.splitext(csvfile))
        sName = fName.split('-')
        worksheet = workbook.get_worksheet_by_name(sName [0])

        if worksheet is None:
            worksheet = workbook.add_worksheet(sName [0]) #workseet with csv file name

        df.to_excel(writer, sheet_name = (sName[0]))

    writer.save()

workbook.close()

我需要的是一本工作簿,每个团队一张纸,最多70个团队。每张工作表将有多行,对于到达该团队的每个csv文件一个。问题是,如何让Pandas或其他库将每个csv文件的内容写入工作簿中的适当工作表中?

1 个答案:

答案 0 :(得分:0)

好的,通过@ivan_pozdeev的输入,我终于解决了我的问题。 记住,我最初的愿望是生成一个可以定期运行的脚本,并生成一个包含多个工作表的电子表格。每个工作表将包含已进行的每场比赛的.csv文件中的所有数据,并按球队编号分组。 我还添加了一个包含原始数据的电子表格。 这是我想出的:

getProtections()

我敢肯定,有一种更干净的方式来编写此代码,对此我还是很陌生,但是现在它可以满足我的期望。