在python中将一个excel中的多个Excel文件组合在一起

时间:2018-01-18 06:53:43

标签: python excel

我需要的是如何合并所有这些excel月份。     例如,所有七月文件必须位于July.xls中的一个excel文件中,     ALl 9月文件应该在一个excel文件中september.xls等。如何在任何正文帮助中执行此操作,如果这些文件超出excel的范围,则将其分成两个excel文件july_1,july_2。

我有多个Excel文件,如下所示这是输入的Excel文件

July_1_2017_00_23_59.xls
July_2_2017_00_23_59.xls
July_3_2017_00_23_59.xls
July_4_2017_00_23_59.xls
July_5_2017_00_23_59.xls
August_1_2017_00_23_59.xls
August_2_2017_00_23_59.xls
August_3_2017_00_23_59.xls
August_4_2017_00_23_59.xls
August_5_2017_00_23_59.xls
september_1_2017_00_23_59.xls
september_2_2017_00_23_59.xls

请帮我在python中执行此操作。

1 个答案:

答案 0 :(得分:0)

首先,您可以按月对文件进行分组,以了解应合并的文件。如果您的文件具有您提到的格式,则可以使用defaultdict和split()快速完成。假设documents包含您的文件列表:

from collections import defaultdict

months = defaultdict(list)

for document in documents:
    month = document.split('_')[0]
    months[month].append(document)

然后你所要做的就是遍历字典并读取excel文件并使用pandas连接它们。我还没有测试下面的代码,但它应该让你大致了解如何继续。

import pandas as pd
for month in months:
    for i, document in enumerate(month):
        if i == 0:
            base_document = pd.read_excel(document)
        else:
            base_document = pd.concat([base_document, pd.read_excel(document)])
    base_document.to_excel(month + '.xls')

关于处理"文件超出了excels"的范围,我不确定你的意思,你应该给我们更多细节。