python 将多个excel连接

本文介绍了一种使用Python pandas库合并多个Excel文件的方法。通过定义文件列表并遍历这些文件,可以将它们的所有工作表(sheet)合并到一个指定的Excel文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- coding:utf-8 -*-

#将多个Excel文件合并成一个

import pandas as pd

if __name__=='__main__':
    #定义要合并的excel文件列表
    part1 = u'新标签数据监测_'
    part2 = u'atx.xlsx'
    allxls=[part1 + '0617'+part2,part1 + '0618'+part2]
    all_file = part1 + '0616' + part2
    #存储所有读取的结果
    for add_file in allxls:
        main_data = pd.ExcelFile(all_file)
        main_sheets = main_data.sheet_names

        add_data = pd.ExcelFile(add_file)
        add_sheets = main_data.sheet_names
        # 合并两个文件的所有sheet表
        all_data = pd.ExcelWriter(all_file)
        # sheet = main_sheets[0]
        for sheet in main_sheets:
            main1 = pd.read_excel(all_file, sheet_name=sheet)
            add1 = pd.read_excel(add_file, sheet_name=sheet)
            all1 = pd.concat([add1, main1], axis=0)
            all1.to_excel(all_data, sheet)
            print u'完成表' + sheet
    all_data.save()
要将多个Excel按照指定列合并,可以使用Python的pandas库来实现。 首先,需要导入pandas库: ```python import pandas as pd ``` 然后,需要使用pandas的read_excel函数来读取每个Excel文件,并将它们保存为DataFrame对象: ```python df1 = pd.read_excel('excel1.xlsx') df2 = pd.read_excel('excel2.xlsx') df3 = pd.read_excel('excel3.xlsx') ``` 接下来,需要使用pandas的concat函数来合并这些DataFrame对象。假设我们要按照"列名"这一列来合并,可以使用如下代码: ```python merged_df = pd.concat([df1, df2, df3], ignore_index=True) ``` 在上述代码中,使用concat函数将df1、df2和df3按行连接起来,并使用ignore_index=True参数重新索引合并后的DataFrame。 如果要进行按照指定列合并,请使用merge函数。首先需要给每个DataFrame对象添加一个标志列,表示它们来自于哪个Excel文件: ```python df1['Excel'] = 'excel1' df2['Excel'] = 'excel2' df3['Excel'] = 'excel3' ``` 然后,使用merge函数按照指定的列名"Excel"来合并DataFrame对象: ```python merged_df = pd.merge(df1, df2, on='Excel') merged_df = pd.merge(merged_df, df3, on='Excel') ``` 上述代码将df1、df2和df3按照"Excel"这一列进行合并,生成一个合并后的DataFrame merged_df。 最后,可以将合并后的DataFrame保存为一个新的Excel文件: ```python merged_df.to_excel('merged.xlsx',index=False) ``` 上述代码将merged_df保存为"merged.xlsx"文件,其中的index=False表示不保存索引。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值