有没有办法将多个数据框组合成一个 xlsx 工作表和多个数据框跨单独的工作表
Posted
技术标签:
【中文标题】有没有办法将多个数据框组合成一个 xlsx 工作表和多个数据框跨单独的工作表【英文标题】:Is there a way to combine multiple dataframes into one xlsx sheet and multiple dataframes across separate sheets 【发布时间】:2022-01-22 03:09:44 【问题描述】:这里我有一个用于跨单独选项卡/工作表的多个数据框的功能
# function
def dfs_tabs(df_list, sheet_list, file_name):
writer = pd.ExcelWriter(file_name,engine='xlsxwriter')
for dataframe, sheet in zip(df_list, sheet_list):
dataframe.to_excel(writer, sheet_name=sheet, startrow=0 , startcol=0)
writer.save()
# list of dataframes and sheet names
dfs = [df, df1, df2]
sheets = ['df','df1','df2']
# run function
dfs_tabs(dfs, sheets, 'multi-test.xlsx')
将多个数据框合并到一张 xlsx 工作表中
# funtion
def multiple_dfs(df_list, sheets, file_name, spaces):
writer = pd.ExcelWriter(file_name,engine='xlsxwriter')
row = 0
for dataframe in df_list:
dataframe.to_excel(writer,sheet_name=sheets,startrow=row , startcol=0)
row = row + len(dataframe.index) + spaces + 1
writer.save()
# list of dataframes
dfs = [df,df1,df2]
# run function
multiple_dfs(dfs, 'Validation', 'test1.xlsx', 1)
我们如何将这两个功能结合起来?
需要一个 Excel 文件 test1.xlsx,其中 df1,df2,df3 在名为 Validation1 的工作表名称中和 df4,df5,df6 在名为 Validation2 的工作表名称中
我的尝试:
# funtion
def multiple_dfs(df_list1, df_list2, sheet_list, file_name, spaces):
writer = pd.ExcelWriter(file_name,engine='xlsxwriter')
row = 0
for dataframe1, dataframe2, sheet in zip(df_list1, df_list2, sheet_list):
dataframe1.to_excel(writer,sheet_name=sheet,startrow=row , startcol=0)
row = row + len(dataframe1.index) + spaces + 1
dataframe2.to_excel(writer,sheet_name=sheet,startrow=row , startcol=0)
row = row + len(dataframe2.index) + spaces + 1
writer.save()
# list of dataframes
a_dfs = [df1,df2,df3]
b_dfs = [df4,df5,df6]
sheets = ['sheet1', 'sheet2']
# run function
multiple_dfs(a_dfs, b_dfs, sheets, 'test1.xlsx', 1)
仅创建 sheet1。谁能告诉我错误在哪里?
【问题讨论】:
【参考方案1】:这对我有用:
def multiple_dfs(df_list, sheets, spaces):
row = 1
for dataframe in df_list:
dataframe.to_excel(writer,sheet_name=sheets,startrow=row+1 , startcol=0)
row = row + len(dataframe.index) + spaces + 2
# list of dataframes
a_dfs = [df1,df2,df3]
b_dfs = [df4,df5,df6]
# run function
writer = pd.ExcelWriter('test1.xlsx',engine='xlsxwriter')
multiple_dfs(a_dfs, "sheet1", 1)
multiple_dfs(b_dfs, "sheet2", 1)
writer.save()
【讨论】:
以上是关于有没有办法将多个数据框组合成一个 xlsx 工作表和多个数据框跨单独的工作表的主要内容,如果未能解决你的问题,请参考以下文章
python将多个excel中的所有工作表附加到pandas数据框中的有效方法