我将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))
它会产生这样的传播表:
当我使用时:
data.index = pd.MultiIndex.from_tuples([("",file_date)] * len(data))
不使用MultiIndex,我怎样才能让最终的电子表格看起来像这样?
谢谢。
答案 0 :(得分:4)
我相信你不需要MultiIndex
,只需要改变:
data.index = pd.MultiIndex.from_tuples([(file_date)] * len(data))
为:
data.index = [file_date] * len(data)