对文档进行比较和合并(拆分和合并EXCEL-无格式)Excel教程 / Excel文档中的文档比较与合并...

wufei123 发布于 2024-06-10 阅读(7)

拆分和合并EXCEL是在工作中经常涉及的操作,比如按部门将文件拆分用以后续发送;将每月数据汇总成一个汇总表会涉及以下几方面内容:Dataframe筛选: dfs[dfs[列名称]==’查找字段’]遍历文件夹中EXCEL: pathlib.Path.glob(‘*.xlsx’)。

Path(file).stem: 返回文件名主要参考的相关网站有以下:https://zhuanlan.zhihu.com/p/475661402?utm_id=0其他说明:本篇介绍的无论是拆分还是合并操作,没有考虑EXCEL格式

拆分EXCEL拆分EXCEL相对比较简单,指定需要拆分的字段,循环并输出至文件即可.下面是按省市(=province)拆分的例子:拆分前的汇总文件

拆分后的文件

Python代码import os from pathlib import Path import pandas as pd # ----------------------------读取文件------------------------------

path=rC:\Users\02279074\OneDrive - Elanco\Lilly_OneDrive\C\TZ\写作文档 sourceFile=os.path.join(path,全国行政区域.xlsx

) #原文件地址 dfs=pd.read_excel(sourceFile, #读取EXCEL原文件 sheet_name=Sheet1, #表格名称 header=

0, #首行为column converters={id:str},) #指定code为文本# ----------------------------处理数据------------------------------

splitKEYs=dfs[province].unique() #指定需要拆分的关键字段for item in splitKEYs: #循环字段 df=dfs[dfs[province]==item]

#筛选中相关数据 fileName=os.path.join(path,拆分EXCEL,f{item}-nonFormat.xlsx) #新文件名 df.to_excel(fileName,index=

False) #输出到EXCEL并保存 print(split done)合并EXCEL合并EXCEL相对拆分要复杂一些,对于EXCEL文件有一些限制:合并的EXCEL文件最好有相同格式合并的数据在文件中有相同sheet名称

合并文件在同一目录中汇总前文件

汇总后

python代码import os from pathlib import Path import pandas as pd # ----------------------------文件信息------------------------------

path=rC:\Users\02279074\OneDrive - Elanco\Lilly_OneDrive\C\TZ\写作文档 outputFile=os.path.join(path,合并EXCEL

,合并-基本.xlsx) #输出文件地址 filePath=os.path.join(path,拆分EXCEL) #文件地址 files=Path(path).glob(*.xlsx) #所有xlsx文件列表

# ----------------------------处理数据------------------------------ data=[] #用以存储所有df数据for file in files:

#循环所有xlsx df=pd.read_excel(file,header=0, #读入df sheet_name=Sheet1) #指定文件名 data.append(df)

#存入变量 dfs=pd.concat(data) #合并成df dfs.to_excel(outputFile,index=False) #输出到EXCEL并保存 print(merge done)上面代码可以将文件合并,但有时我们需要将读入的EXCEL名称显示在合并文件中。

可以想像你有1-12个月的表格,合并完成后想知道数据是哪个月份的,这时有文件名称就非常的有帮助。汇总前文件

汇总后:可以看到文件名称已经被加入到合并后的文件中

python代码import os from pathlib import Path import pandas as pd # ----------------------------文件信息------------------------------

path=rC:\Users\02279074\OneDrive - Elanco\Lilly_OneDrive\C\TZ\写作文档 outputFile=os.path.join(path,合并EXCEL

,合并-添加文件名.xlsx) #输出文件地址 filePath=os.path.join(path,1-12数据) #文件地址 files=Path(filePath).glob(*.xlsx) #所有xlsx文件列表

# ----------------------------处理数据------------------------------ data=[] #用以存储所有df数据 dfSize=[] #debug

for file in files: #循环所有xlsx df=pd.read_excel(file,header=0, #读入df sheet_name=Sheet1) #指定文件名 fileName=file.stem

#获取文件名称 df[file_name]=fileName #添加新列 data.append(df) #存入变量 dfSize.append(len(df)) #debug记录df长度

dfs=pd.concat(data) #合并成df dfs.to_excel(outputFile,index=False) #输出到EXCEL并保存 print(merge done)通过记录df的长度和汇总后dfs的长度,可以看到记录都已经汇总完成

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

河南中青旅行社综合资讯 奇遇综合资讯 盛世蓟州综合资讯 综合资讯 游戏百科综合资讯 新闻13951