【问题标题】:Merging multiple dataframes into single sheet top to bottom using loop使用循环将多个数据框从上到下合并到单个工作表中
【发布时间】:2019-05-07 08:53:33
【问题描述】:

我的蟒蛇很简陋。我想要它做的是获取第一个数据帧,搜索一个唯一编号并在相同格式的模板中创建一个新的 df,使用相同的唯一编号,搜索第二个 df 并创建一个与该唯一编号相关的新 df以指定的格式,然后将所有循环数据相互合并。

这是代码

#function
def multiple_dfs(df_list, sheets, file_name, spaces):
writer = pd.ExcelWriter(file_name,engine='xlsxwriter')   
row = 0



for i in uniqueIR:
    dftopi = df_out[df_out['Invoice Reference Number'] == i]
    df2 = df_out_fin[df_out_fin['Invoice Reference Number'] == i]
    df3 = df2.drop(columns = ['Invoice Reference Number'])

    for dataframe in df_list:
        dataframe.to_excel(writer,sheet_name=sheets,startrow=row , startcol=0, index = False)   
        row = row + len(dataframe.index) + spaces  
writer.save()

# list of dataframes
dfs = [dftopi,df3]

# run function
multiple_dfs(dfs, 'Validation', 'test1.xlsx', 1) 

这就是我想要的: table output

【问题讨论】:

标签: python excel pandas xlsxwriter


【解决方案1】:

如果将来有人想知道,想出一个解决方案:

writer = pd.ExcelWriter('test3.xlsx', engine = 'xlsxwriter')

dflist = []
for i in uniqueIR:


    dftopi = df_out[df_out['Invoice Reference Number'] == i]
    df2 = df_out_fin[df_out_fin['Invoice Reference Number'] == i]
    df3 = df2.drop(columns = ['Invoice Reference Number'])

    dftopi.to_excel(writer, sheet_name = 'Top Half' + str(i), index = False)    
    df3.to_excel(writer, sheet_name = 'Bottom Half' + str(i), index = False)

    dflist.append(dftopi)
    dflist.append(df3)
writer.save()


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, index = False)   
            row = row + len(dataframe.index) + spaces


    writer.save()

multiple_dfs(dflist, 'Validation', 'test4.xlsx', 1) 

【讨论】:

    猜你喜欢
    • 2019-08-25
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多