Python,Pandas将Excel文件合并为1,文件名称为A列

时间:2017-12-12 07:10:47

标签: python excel pandas dataframe

我将Excel电子表格合并到1个电子表格中,并希望在合并后将电子表格的文件名作为第一列插入。

要合并的Excel文件是:20170801.xlsx,20170901.xlsx,20171001.xlsx

这是我的代码:

working_folder = 'c:\\abc\\'
files = os.listdir(working_folder)

files_xls = [];
for f in files:
    if f.endswith(".xlsx"):
        fff = working_folder + f
        files_xls.append(fff)

df = pd.DataFrame();

for f in files_xls:
    data = pd.read_excel(f, skip_footer=0)
    file_date = basename(f).replace(".xlsx", "")
    #data.index = pd.MultiIndex.from_tuples([("", file_date)] * len(data))
    data.index = pd.MultiIndex.from_tuples([(file_date)] * len(data))
    df = df.append(data)

df.to_excel(working_folder + 'final.xls', merge_cells = False)

问题出在行data.index = pd.MultiIndex ......。

当我使用时:

data.index = pd.MultiIndex.from_tuples([(file_date)] * len(data))

它会产生这样的传播表:

enter image description here

当我使用时:

data.index = pd.MultiIndex.from_tuples([("",file_date)] * len(data))

它产生了一个更好看的电子表格,但是像这样的空列A: enter image description here

不使用MultiIndex,我怎样才能让最终的电子表格看起来像这样?

enter the image description here

谢谢。

1 个答案:

答案 0 :(得分:4)

我相信你不需要MultiIndex,只需要改变:

data.index = pd.MultiIndex.from_tuples([(file_date)] * len(data))

为:

data.index = [file_date] * len(data)