使用熊猫按字母顺序排列EXCEL的工作表

时间:2018-09-06 20:12:11

标签: python pandas xlsx worksheet

我有很多文件,每个文件有7个工作表,分别命名为A,B,C ... G 它们处于各种顺序中。我正在尝试使用以下脚本将文件串联在一起。

import pandas as pd

# filenames
excel_names = ["xlsx1.xlsx", "xlsx2.xlsx", "xlsx3.xlsx"]

# read them in
excels = [pd.ExcelFile(name) for name in excel_names]

# turn them into dataframes
frames = [x.parse(x.sheet_names[0], 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[1:] for df in frames[1:]]

# concatenate them..
combined = pd.concat(frames)

# write it out
combined.to_excel("c.xlsx", header=False, index=False)

我需要为每个文件使用统一的工作表顺序,以将行中的参数[0]更改为[1]等。

frames = [x.parse(x.sheet_names[0], header=None,index_col=None) for x in excels]

如何实现?

1 个答案:

答案 0 :(得分:0)

根据您的代码,您可以编写:

def get_sheet(x, i):
    return x.parse(x.sheet_names[i], header=None,index_col=None)


def get_sheets(i: int, excels):
    """Return a list of every *i*-th sheet from *excels*."""     
    return  [get_sheet(x, i) for x in excels]

我认为这不是按名称处理工作表,而是一种开始的方式。