【问题标题】:Python, Pandas to combine Excel files into 1, with files names as Column APython,Pandas 将 Excel 文件合并为 1,文件名为 A 列
【发布时间】:2018-05-25 19:28:15
【问题描述】:

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

要合并的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))

它会生成一个更好看的电子表格,但 A 列是空的,如下所示:

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

谢谢。

【问题讨论】:

  • 您认为为什么需要多索引?
  • @cᴏʟᴅsᴘᴇᴇᴅ,感谢您的评论。我知道不需要。但是我不知道用什么...

标签: python excel pandas dataframe


【解决方案1】:

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

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

到:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 2020-06-12
    • 2021-05-26
    • 2014-07-22
    • 2019-08-05
    • 1970-01-01
    • 2016-10-09
    • 2022-12-15
    相关资源
    最近更新 更多