用Python Pandas合并多个excel(.xlsx)文件

有时候需要将多个表头一致的文件合并成一个(注意要表头一致,不一致的话,合并之后内容会错开),手动打开所有表一个一个复制 粘贴到总表中,繁琐且容易出错,写个简单代码,一键将所有的excel(.xlsx)文件合并

"""
Created on Wednesday, March 25, 2020 at 11:14:56

@author: qinghua mao
"""

import os,time
import pandas as pd
start_time=time.time()
dir = r'D:\python脚本\合并excel\日常指标' #设置工作路径

#新建列表,存放每个文件数据框(每一个excel读取后存放在数据框,依次读取多个相同结构的Excel文件并创建DataFrame)
DFs = []

for root, dirs, files in os.walk(dir):  #第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。
    for file in files:
        file_path=os.path.join(root,file)  #将路径名和文件名组合成一个完整路径
        df = pd.read_excel(file_path,encoding="gbk") #excel转换成DataFrame
        DFs.append(df)
 #合并所有数据,将多个DataFrame合并为一个
alldata = pd.concat(DFs)  #sort='False'

# alldata.to_csv(r'D:\python脚本\csv合并结果.csv',sep=',',index = False,encoding="gbk")
alldata.to_excel(r'D:\python脚本\excel合并结果.xlsx',index = False,encoding="gbk")
end_time=time.time()
times=round(end_time-start_time,2)
print('合并完成,耗时{}秒'.format(times))
#如果要将合并结果写入到csv文件中,就使用 to_csv,如果要将合并结果写入到excel文件中,就使用 to_excel
#如果是合并带有数字的excel,最好写入到csv文件中(个人建议),写入到excel中还需要将数字单元格进行转换,但是如果有日期,需要手动转换
#如果写入结果,中文有乱码,就指定写入格式,这里指定的是gbk

与合并csv相比,同一样的合并方法,合并.xlsx文件时不会出现多余的表头,只有首行

### 回答1: 可以使用Python中的pandas库来合并多个Excel文件。具体步骤如下: 1. 导入pandas库和os库 ```python import pandas as pd import os ``` 2. 设置要合并Excel文件所在的文件夹路径 ```python folder_path = 'path/to/your/folder' ``` 3. 获取文件夹中所有Excel文件文件名 ```python file_names = os.listdir(folder_path) excel_files = [f for f in file_names if f.endswith('.xlsx')] ``` 4. 创建一个空的DataFrame ```python df = pd.DataFrame() ``` 5. 遍历所有Excel文件,将它们读取为DataFrame,并将它们合并到df中 ```python for file in excel_files: file_path = os.path.join(folder_path, file) temp_df = pd.read_excel(file_path) df = pd.concat([df, temp_df], ignore_index=True) ``` 6. 将合并后的DataFrame保存为一个新的Excel文件 ```python output_file_path = 'path/to/output/file.xlsx' df.to_excel(output_file_path, index=False) ``` 以上就是使用pandas合并多个Excel文件的步骤。 ### 回答2: 要将多个Excel文件合并一个文件,我们可以使用Python中的Pandas库。Pandas一个专门用于数据处理和数据分析的库,它提供了DataFrame(数据帧)的数据结构,可以非常方便地处理和操作数据。 首先,我们需要安装Pandas库。我们可以使用pip命令在终端中输入以下命令进行安装: ``` pip install pandas ``` 在安装完成后,我们就可以开始使用Pandas合并多个Excel文件了。下面是基本的思路: 1. 导入Pandas库 ``` import pandas as pd ``` 2. 读取Excel文件 我们可以使用`pd.read_excel()`方法来读取Excel文件。例如,如果我们要读取名为“file1.xlsx”的文件,可以使用以下代码: ``` df1 = pd.read_excel('file1.xlsx') ``` 3. 合并多个Excel文件 我们可以使用`pd.concat()`方法来合并多个DataFrame对象。例如,如果我们要合并df1、df2和df3三个DataFrame对象,可以使用以下代码: ``` result = pd.concat([df1, df2, df3]) ``` 其中,`result`变量将包含所有DataFrame对象中的数据,并将它们合并一个大DataFrame对象。 4. 将数据保存到新的Excel文件中 最后,我们可以使用`result.to_excel()`方法将合并后的数据保存到一个新的Excel文件中。例如,我们可以使用以下代码将数据保存到名为“merged.xlsx”的文件中: ``` result.to_excel('merged.xlsx', index=False) ``` 在这种情况下,`index`参数被设置为`False`,这意味着我们不希望将DataFrame对象中的索引列也保存到Excel文件中。 总之,使用Pandas合并多个Excel文件非常简单,只需使用上述步骤即可。这种方法适用于多种不同的数据合并场景。 ### 回答3: 要合并多个Excel文件,可以使用Python中的pandas库。pandas库提供了许多方便的函数来处理数据,包括读取、修改和合并数据。 以合并两个Excel文件为例,我们先读取两个Excel文件(假设都在同一文件夹下): ```python import pandas as pd df1 = pd.read_excel("file1.xlsx") df2 = pd.read_excel("file2.xlsx") ``` 接下来,我们可以使用pandas库中的concat函数将两个数据框(dataframe)合并一个。如果两个数据框中的列名不同,我们可以使用rename函数将它们重命名为相同的列名: ```python df1 = df1.rename(columns={"old_name": "new_name"}) df2 = df2.rename(columns={"old_name": "new_name"}) merged_df = pd.concat([df1, df2]) ``` 如果想按照行的方式合并,即将df2的内容,添加到df1的后面,可以使用append方法: ```python merged_df = df1.append(df2) ``` 如果要将多个Excel文件合并一个,可以使用循环遍历每个Excel文件,然后使用concat或append函数将它们合并起来: ```python import os # 获取当前文件夹下的所有Excel文件 files = [f for f in os.listdir(".") if f.endswith(".xlsx")] # 将所有Excel文件读取成数据框并合并 merged_df = pd.DataFrame() for file in files: df = pd.read_excel(file) merged_df = merged_df.append(df) # 将合并后的数据框写入到Excel文件中 merged_df.to_excel("merged.xlsx", index=False) ``` 以上就是用Python pandas合并多个Excel文件的方法。需要注意的是,如果合并Excel文件中有重复的列名或者行号,可能会导致合并后的结果出现错误。因此,在合并之前,最好先检查数据的格式和内容,确保能够正确合并
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值