我目前有一个代码,该代码可遍历目录中的所有excel文件,并将工作簿中工作表#的所有数据解析为一个最终工作表。我正在尝试让代码通过特定的工作表名称访问工作表,所有excel文件都有一个我试图访问的名为“数据叙事”的工作表。如何使它起作用,而不是按索引位置抓住表?
当前代码如下。
import pandas as pd
from os import listdir
from os.path import isfile, join
onlyfiles = [f for f in listdir('ALL EDTs') if isfile(join('ALL EDTs', f))]
# filenames
excel_names = onlyfiles
# read them in
excels = [pd.ExcelFile('ALL EDTS/'+ name) for name in excel_names]
# turn them into dataframes
frames = [x.parse(x.sheet_names[3], header=None,index_col=None) for x in
excels]
# delete the first row for all frames except the first
# i.e. remove the header row -- assumes it's the first
frames[1:] = [df[4:] for df in frames[1:]]
# concatenate them..
combined = pd.concat(frames)
# write it out
combined.to_excel("all.xlsx", header=False, index=False)
答案 0 :(得分:0)
我将为此使用pd.read_excel()
,因为它有一个参数来指定工作表名称。假设您所有的文件名都在名为f_names
的列表中:
combined = pd.concat(
pd.read_csv(open(f, 'rb'), sheet_name="Data Narrative") for f in f_names
)
答案 1 :(得分:0)