每天非常钟Python数据分析[12]:批量合并Excel文件,完美处理!
作者头像
  • 2020-05-12 16:13:50 8

序文

《每天非常钟Python数据分析》专栏的Python基础部分已经完成了,但第二部分内容迟迟未发布,主要是因为我正在调整整体框架,希望以更有效的方式讲解数据分析。我的新想法是增加更多的项目实战内容,希望能得到大家的支持。调整完框架后,我会加快更新速度。现在正在进行限时优惠活动,欢迎订阅。

数据整合

在数据分析、数据挖掘和机器学习领域,数据整合、数据集成和数据规整的概念有时不够清晰。不过,它们所涵盖的内容大体相同。在这里,我们按照数据分析中的数据整合定义来进行讨论。

数据整合主要涉及数据表的连接和合并,常用的方法包括pandas的concat、merge、append和join函数。此外,数据整合还涉及条件查询、排序、分组和赋值操作,这些内容已经在《每天非常钟数据分析[6]:Pandas高级用法》一章中详细讲解过,因此这里不再赘述。

如果你对pandas的操作还不够熟练,可以通过私信联系我,我会发送一份【pandas官方文档中文版】供你参考练习。

批量快速合并Excel文件

在实际工作中,业务部门提供的数据可能是几百个甚至上千个格式相同的Excel文件。

面对这么多的Excel表格,可能会感到有些压力。但实际上,处理起来并不复杂。网络上有许多开源工具和方法可以帮助你实现这一目标。其中一种简单的方法是利用os.listdir列出目录下的所有文件,然后使用pd.concat批量合并Excel文件。

```python import os import pandas as pd

dir = "这里填你的批量Excel文件保存的路径" os.chdir(dir) listdir = os.listdir(dir) excels = [ pd.readexcel(fname) for fname in listdir if ".xls" in fname ] df = pd.concat(excels) df.toexcel("合并后的文件.xls", index=False) ```

这段代码虽然简洁,但仅适用于少量文件且没有表头的情况。如果Excel文件中有表头,合并时可能会出现问题。

为了更好地解决这个问题,这里分享一份更为完善的批量合并Excel文件的代码(如果遇到问题,可以随时联系我):

```python

-- coding: utf-8 --

import os import xlrd import pandas as pd

获取所有需要合并的工作簿路径,生成列表

def filename(filedir): list = [] for file in os.listdir(file_dir): if os.path.splitext(file)[1] == '.xls': list.append(file) return list

path = r'这里填你的批量Excel文件保存的路径' wks = file_name(path) data = [] # 定义一个空列表

for i in range(len(wks)): readxlsx = xlrd.openworkbook(path + '' + wks[i]) sheet1 = readxlsx.sheets()[0] # 查看第一个工作表的数据 nrow = sheet1.nrows title = sheet1.rowvalues(0) # 表头 for j in range(1, nrow): # 逐行读取 data.append(sheet1.row_values(j))

content = pd.DataFrame(data) content.to_excel(path + '合并后的数据.xlsx', header=True, index=False) ```

欢迎订阅,限时优惠中

希望以上内容对你有所帮助,欢迎订阅我们的专栏,现在正是优惠期间!

    本文来源:图灵汇
责任编辑: :
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
数据分析批量合并每天非常完美文件处理PythonExcel
    下一篇