将来自不同Excel文件的工作表连接到一个工作簿python中

时间:2020-02-16 10:58:34

标签: python excel pandas

我正在尝试理解一段时间前发布的代码。我找不到适当的解释,所以我发表了这篇文章。我是python的新手,如果有人可以向我解释它的工作原理,我将非常感谢。我标记了我不理解的部分。

Link to the original thread

代码本身:

    from pandas import ExcelWriter
import glob
import os
import pandas as pd

writer = ExcelWriter("output.xlsx")

for filename in glob.glob("*.xlsx"):
    excel_file = pd.ExcelFile(filename)
    (_, f_name) = os.path.split(filename) <--- 
    (f_short_name, _) = os.path.splitext(f_name)
    for sheet_name in excel_file.sheet_names:
        df_excel = pd.read_excel(filename, sheet_name=sheet_name)
        df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False) <---

writer.save()

1 个答案:

答案 0 :(得分:0)

您标记的只是创建者尝试在新的excel文件中命名工作表的原因。

(_, f_name) = os.path.split(filename)

# _: 'C:\\Desktop'
#f_name: 'file.xlsx'

它返回目录的开头和结尾。在这种情况下,尾部为文件名。

df_excel.to_excel(writer, f_short_name+'_'+sheet_name, index=False)

这是将一个数据框保存到excel文件中。 第一个论点:

  • ExcelWriter,如果您要创建一个内部包含多个图纸的Excel文件。
  • 如果没有,请使用file path(要将其保存在何处)。

每个数据帧的第二个参数:Sheet name

最后一个参数:index或行名

  • 是的:写
  • 错误:跳过

以获取更多信息:

os.path.splithttps://www.geeksforgeeks.org/python-os-path-split-method/

.to_excelhttps://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_excel.html