【问题标题】:How to loop through excel sheets and perform same task on each sheet using python如何循环遍历excel工作表并使用python在每张工作表上执行相同的任务
【发布时间】:2020-01-25 06:03:25
【问题描述】:

我有一个包含多行数据的 excel 文件。我有第二个文件,里面有多张纸。使用 python,我想遍历第二个文件上的每个工作表,并将其与第一个文件上的数据合并(它们具有相同的列标题)。

作为最终导出,我希望将所有合并的数据重新放在第一个文件中。

我对 python 比较陌生,除了读取 pandas 库和两个文件之外没有编写任何代码。

【问题讨论】:

  • 到目前为止你有没有尝试过?如果是,请分享它,以便其他人可以在此基础上进行构建。
  • 请与您迄今为止尝试过的代码分享您的示例输入和预期输出!
  • 所以你想将第二张表的数据附加到第一张表中。我对么?你关心如果有重复怎么办。另外,工作表中的各种字段名称是什么,它们是否有像序列号这样的列,因为这可能会影响将要编写的代码。

标签: python loops merge


【解决方案1】:

鉴于file1.xlsx 是您的主文件,file2.xlsx 是您的包含多张工作表的文件:

import pandas

df_main = pd.read_excel('file1.xlsx')
multiple_sheets = pd.read_excel('file2.xlsx', sheet_name=None)  # None means all sheets, this produces a dict of DataFrames with the keys as the sheet names.

for x in multiple_sheets.values():  # Loop through dict with x as the df per sheet
    # Cleanup before adding.
    df_main = pd.concat([df_main, x], ignore_index=True)

从那里,您现在可以进行清理并将 DataFrame 保存为新的 Excel 文件(即df_main.to_excel('file1.xlsx'))。

参考资料:

【讨论】:

  • 谢谢!这是有效的,但是附加正在填充错误,因为它不适用于字典。据我所知...
  • 哎呀,看起来multiple_sheets 的结果是一个字典,而不是我最初认为的列表。我将编辑我的答案以反映这一点。
猜你喜欢
  • 1970-01-01
  • 2020-04-05
  • 1970-01-01
  • 2013-11-08
  • 2015-03-03
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多