《每天非常钟Python数据分析》专栏的Python基础部分已经完成了,但第二部分内容迟迟未发布,主要是因为我正在调整整体框架,希望以更有效的方式讲解数据分析。我的新想法是增加更多的项目实战内容,希望能得到大家的支持。调整完框架后,我会加快更新速度。现在正在进行限时优惠活动,欢迎订阅。
在数据分析、数据挖掘和机器学习领域,数据整合、数据集成和数据规整的概念有时不够清晰。不过,它们所涵盖的内容大体相同。在这里,我们按照数据分析中的数据整合定义来进行讨论。
数据整合主要涉及数据表的连接和合并,常用的方法包括pandas的concat、merge、append和join函数。此外,数据整合还涉及条件查询、排序、分组和赋值操作,这些内容已经在《每天非常钟数据分析[6]:Pandas高级用法》一章中详细讲解过,因此这里不再赘述。
如果你对pandas的操作还不够熟练,可以通过私信联系我,我会发送一份【pandas官方文档中文版】供你参考练习。
在实际工作中,业务部门提供的数据可能是几百个甚至上千个格式相同的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
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) ```
希望以上内容对你有所帮助,欢迎订阅我们的专栏,现在正是优惠期间!