Python如何将多个Excel文件合并为一个文件

Python如何将多个Excel文件合并为一个文件

Python如何将多个Excel文件合并为一个文件

  通常,我们使用 Excel 文件,我们肯定遇到过需要将多个Excel文件合并为一个的情况。传统的方法直是在 excel 中使用 VBA 代码,它可以完成这项工作,但它是一个多步骤的过程,不容易理解。另一种方法是手动将长 Excel 文件复制到一个中,这不仅耗时、麻烦而且容易出错。 

  使用Pandas 模块,使用Python中的几行代码即可轻松快速地完成此任务。首先,我们需要使用 pip 安装模块。 

  在终端中使用以下命令:

pip install pandas

怎么用Python将多个Excel文件合并

  使用Python如何将多个Excel文件合并为一个文件的方法有两个,分别为dataframe.append()方法和pandas.concat()方法,晓得博客为你具体介绍如下方法:

1、使用dataframe.append()

  Pandas dataframe.append()函数用于将其他数据框的行添加到给定数据框的末尾, 并返回一个新的数据框对象。新列和新单元格将插入到原始DataFrame中, 并用NaN值填充

  语法: DataFrame.append(other, ignore_index=False, verify_integrity=False, sort=None)

  参数 :

  • other : DataFrame 或 Series/dict-like 对象,或这些对象的列表
  • ignore_index :如果为 True,则不使用索引标签。默认为假。
  • verify_integrity :如果为 True,则在创建具有重复项的索引时引发 ValueError。默认为假。
  • sort :如果 self 和 other 的列没有对齐,则对列进行排序。默认为假。

返回:它返回附加的DataFrame作为输出。

例子:使用的 Excel: FoodSales1-1 , FoodSales2-1

  • python 3
# importing the required modules
import glob
import pandas as pd

# specifying the path to csv files
path = "C:/downloads"

# csv files in the path
file_list = glob.glob(path + "/*.xlsx")

# list of excel files we want to merge.
# pd.read_excel(file_path) reads the excel
# data into pandas dataframe.
excl_list = []

for file in excl_list:
	excl_list.append(pd.read_excel(file))

# create a new dataframe to store the
# merged excel file.
excl_merged = pd.DataFrame()

for excl_file in excl_list:
	
	# appends the data into the excl_merged
	# dataframe.
	excl_merged = excl_merged.append(
	excl_file, ignore_index=True)

# exports the dataframe into excel file with
# specified name.
excl_merged.to_excel('total_food_sales.xlsx', index=False)

输出 :

DataFrame.append()输出数据

2、使用pandas.concat()

  pandas.concat() 函数可以将数据根据不同的轴作简单的融合。

  语法: concat(objs,axis,join,ignore_index,keys,levels,names,verify_integrity,sort,copy)

  参数:

  • objs 系列或数据帧对象
  • 轴:要连接的轴;default = 0 //沿行
  • join:处理其他轴上的索引的方法;默认 = '外部'
  • ignore_index:如果为 True,则不使用沿串联轴的索引值;默认 = 假
  • 键:将标识符添加到结果索引的序列;默认 = 无
  • 级别:用于构建 MultiIndex 的特定级别(唯一值);默认 = 无
  • 名称:生成的分层索引中级别的名称;默认 = 无
  • verify_integrity:检查新的串联轴是否包含重复项;默认 = 假
  • 排序:如果在 join 为“外部”时尚未对齐,则对非连接轴进行排序;默认 = 假
  • 复制:如果为False,不要不必要地复制数据;默认 = 真

  返回:带有连接数据的 Pandas 数据框。

例子:

  在最后一个示例中,我们只处理了两个包含几行的 Excel 文件。让我们尝试合并更多文件,每个文件包含大约 5000 行和 7 列。我们有 5 个文件BankE , BankD , BankC , BankB , BankA具有各自银行的历史库存数据。让我们将它们合并到一个“Bank_Stocks.xlsx”文件中。这里我们使用的是 pandas.concat() 方法。

  • python 3
# importing the required modules
import glob
import pandas as pd

# specifying the path to csv files
path = "C:/downloads"

# csv files in the path
file_list = glob.glob(path + "/*.xlsx")

# list of excel files we want to merge.
# pd.read_excel(file_path) reads the
# excel data into pandas dataframe.
excl_list = []

for file in excl_list:
	excl_list.append(pd.read_excel(file))

# concatenate all DataFrames in the list
# into a single DataFrame, returns new
# DataFrame.
excl_merged = pd.concat(excl_list, ignore_index=True)

# exports the dataframe into excel file
# with specified name.
excl_merged.to_excel('Bank_Stocks.xlsx', index=False)

输出 :

pandas.concat() 输出数据

总结

  以上是Python如何将多个Excel文件合并为一个文件的全部内容,希望对你的有所帮助。

 


Leave a Comment

Your email address will not be published. Required fields are marked *


Scroll to Top