如何将多个数据框中具有相同列标题的行合并到一个数据框中,然后将其写入Excel?

时间:2019-06-17 17:40:57

标签: python pandas

我在一个具有相同列但行长不同的文件夹中有一个excel文件列表。我需要使用列表下方的一行来重命名列标题,从每个文件的开头和结尾删除固定数量的行,其中包含无用的数据,并在文件名的末尾添加一列作为字符串。完成此操作后,我需要将结果行合并到一个文件中,而无需更改列的格式或顺序。

我当前正在浏览文件,将原始的excel工作表读入数据框,并将其分别写入另一个文件夹。我已经在处理过的excel文件上尝试了pd.concat,但这导致文件的列和顺序不同。

import os
filepathname = "FILEPATH1"
os.chdir(filepathname)
benchmarkfiles = os.listdir()

import pandas as pd

#loops through benchmark files, removes unnecessary rows
#writes files in new processed folder


for file in benchmarkfiles:
    finaldata = pd.DataFrame()
    df1 = pd.read_excel(file) #imports all data from benchmark sheet
    df1.columns = df1.iloc[3] #changes dataframe column names
    df2 = df1.drop(df1.index[-10:])#removes extra rows from the end
    df3 = df2.drop(df2.index[0:4])#removes extra rows from beginning
    df4 = df3.assign(strategy = file) #adds column with data to end of dataframe

#I would prefer to combine rows from all dataframes into one here rather than write them to excel
    from pandas import ExcelWriter
    filepath='FILEPATH2'+ file
    writer = ExcelWriter(filepath)
    df4.to_excel(writer,'Benchmarks')
    writer.save()

processed_filepath = 'FILEPATH2'
os.chdir(processed_filepath)
processed_files = os.listdir()


#combines all files in list

processed_dataframe = pd.concat([pd.read_excel(f) for f in processed_files])

final_file_path = 'FILEPATH3'
os.chdir(final_file_path)
processed_dataframe.to_excel('combined_excel.xlsx')

所得的Combined_excel.xlsx列不正确。我还想通过在处理完数据框后将它们组合成一个,而不必先将每个框都推向excel,然后将最后一个推向excel,来实现这一点。

0 个答案:

没有答案