Python:循环浏览excel工作表并写入csv
我有一个非常大的数据集(>100gb)。它有许多excel文件(.xlsx)。每个xlsx文件都有许多工作表。每张表中的数据如下图所示 我想将这些图纸合并为csv文件,并将此宽格式更改为长格式,以便:Python:循环浏览excel工作表并写入csv,python,python-3.x,Python,Python 3.x,我有一个非常大的数据集(>100gb)。它有许多excel文件(.xlsx)。每个xlsx文件都有许多工作表。每张表中的数据如下图所示 我想将这些图纸合并为csv文件,并将此宽格式更改为长格式,以便: 第一列包含excel文件名 第二列包含图纸的名称 第三、第四和第五列是上图中的“股票代码”、“名称”、“详细信息保持类型”列 第六列是“日期”(第一行),并且 最后一列包含数字 最有效的方法是什么?我有代码在文件和工作表中循环,但无法将(宽)数据转换为我所追求的长格式。下面是我的循环尝试: im
import csv
from os import listdir
from os.path import isfile, join
mypath = "E:/data_download/Python_test_files/"
file_lists = [f for f in listdir(mypath) if isfile(join(mypath, f))]
import xlrd
for file in file_lists:
book = xlrd.open_workbook(f'{mypath}{file}')
sheet_names = book.sheet_names()
print(sheet_names)
for sheet in book.sheets():
for row in sheet.get_rows():
一步一步地进行(请记住,为了使过程尽可能快,您必须尽可能多地使用本机python,并且只有在绝对必要时才使用其他库): 因此,您希望从所有这些工作表中获得一个csv文件。您应该做的是,首先为所有图纸中的所有行创建一个2D
列表
,然后使用pandas库使用Dataframe
类将它们导入csv文件:
import pandas as pd
my_list = [...] # your 2D list containing the rows
dataset= pd.DataFrame(my_list, columns=['column1','column2', '...') # the name of your columns
dataset.to_csv('/PATH/file.csv')
一步一步地进行(请记住,为了使过程尽可能快,您必须尽可能多地使用本机python,并且只有在绝对必要时才使用其他库): 因此,您希望从所有这些工作表中获得一个csv文件。您应该做的是,首先为所有图纸中的所有行创建一个2D
列表
,然后使用pandas库使用Dataframe
类将它们导入csv文件:
import pandas as pd
my_list = [...] # your 2D list containing the rows
dataset= pd.DataFrame(my_list, columns=['column1','column2', '...') # the name of your columns
dataset.to_csv('/PATH/file.csv')
这是一个非常(可能过于)宽泛的问题,所以你可能不会得到你所希望的答案。您几乎已经编写好了伪代码:对于每个xlsx文件:打开文件,提取所需的列,并另存为csv。对于大型数据集,您可能想考虑保存到数据库而不是CSV。是的,但是我需要CSV格式,这样我就可以导入SAS。这是一个非常(可能过于)宽泛的问题,所以你可能不会得到你所希望的答案。您几乎已经编写好了伪代码:对于每个xlsx文件:打开文件,提取所需的列,并另存为csv。对于大型数据集,您可能想考虑保存到数据库而不是CSV。是的,但是我需要CSV格式,这样我就可以导入SAS。这篇文章经过编辑缩小了问题的范围谢谢你的回复。我不想做计算,所以我认为使用dataframe需要更长的时间。我只是简单地读入一些数据并将其作为csv写出来。我通过文件、表格、行和列的循环来完成这一任务谢谢你的回复。我不想做计算,所以我认为使用dataframe需要更长的时间。我只是简单地读入一些数据并将其作为csv写出来。我通过文件、工作表、行和列的一些循环来完成这项工作