Python 如何组合多个excel文件,每个excel文件中有多个相同数量的工作表

Python 如何组合多个excel文件,每个excel文件中有多个相同数量的工作表,python,pandas,Python,Pandas,我目前能够将多个excel文件合并为一张工作表。 我想将多个工作表组合在一起,每个excel文件中有两个不同的工作表,并为每个工作表命名如何实现这一点 下面是我当前的代码,用于在多个excel文件中组合单个工作表,而无需为组合的excel文件指定工作表名称 import pandas as pd # filenames excel_names = ["xlsx1.xlsx", "xlsx2.xlsx", "xlsx3.xlsx"] # read them in excels = [pd.Ex

我目前能够将多个excel文件合并为一张工作表。 我想将多个工作表组合在一起,每个excel文件中有两个不同的工作表,并为每个工作表命名如何实现这一点

下面是我当前的代码,用于在多个excel文件中组合单个工作表,而无需为组合的excel文件指定工作表名称

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)
首先将第一张和第二张纸分别合并 使用pd.ExcelWriter 并将这些工作表写入同一excel文件:

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('two_sheets_combined.xlsx', engine='xlsxwriter')

# Write each dataframe to a different worksheet.
df_first.to_excel(writer, sheet_name='Sheet1')
df_second.to_excel(writer, sheet_name='Sheet2')

# Close the Pandas Excel writer and output the Excel file.
writer.save()
您可以使用:

#number of sheets
N = 2
#get all sheets to nested lists
frames = [[x.parse(y, index_col=None) for y in x.sheet_names] for x in excels]
#print (frames)

#combine firt dataframe from first list with first df with second list...
combined = [pd.concat([x[i] for x in frames], ignore_index=True) for i in range(N)]
#print (combined)

#write to file
writer = pd.ExcelWriter('c.xlsx', engine='xlsxwriter')
for i, x in enumerate(combined):
    x.to_excel(writer, sheet_name='Sheet{}'.format(i + 1))
writer.save()

在“工作表\u框架=[pd.read\u excel(x,sheetname=sheetname)”中,对于excel\u names]行中的x,sheetname应为工作表\u name。。这对我很管用。。谢谢……:)我们如何将其转换为csv?我明白了,
sheetname
自pandas 0.21以来一直被弃用,现在应该使用
sheet\u name
。将编辑答案。它将两张表结合在一起,但在第二张表中,一个文件数据与另一个文件数据之间存在很大的差距。我猜x.sheet_名称仍有问题。我在pandas 0.22.0中对其进行了测试,效果良好。什么是错误?是的,它正在工作。。。很抱歉给您带来不便。。顺便问一下,如何检查pandas的版本?print(pd.show_versions())很好,因为所有版本都可以。
#number of sheets
N = 2
#get all sheets to nested lists
frames = [[x.parse(y, index_col=None) for y in x.sheet_names] for x in excels]
#print (frames)

#combine firt dataframe from first list with first df with second list...
combined = [pd.concat([x[i] for x in frames], ignore_index=True) for i in range(N)]
#print (combined)

#write to file
writer = pd.ExcelWriter('c.xlsx', engine='xlsxwriter')
for i, x in enumerate(combined):
    x.to_excel(writer, sheet_name='Sheet{}'.format(i + 1))
writer.save()