当前位置:   article > 正文

利用pandas批量筛选Excel表格并合并_panda 筛选特定值合并文件夹的表

panda 筛选特定值合并文件夹的表

1、背景
最近课题组帮老师整理、汇总文献,由于每个人汇总方式的差异,导致产生了许多空的表格,由于表格数量之多,一个个的点开再筛选会浪费大量的时间,故想到利用最近新学习的pandas来进行初步的筛选。
2、筛选表格依据
如下图,第一张图为我们想要的,第二张图为我们想要过滤掉的Excel,因此我们可以通过判断单元格B2来进行筛选,筛选代码如下:此表为我们需要的此表为空的的Excel,需删除
3、筛选代码
3.1 导入模块

import os
import pandas as pd
import glob
  • 1
  • 2
  • 3

3.2 设置路径即文件所在位置

os.chdir(r'E:\study\Excel')
excel_list = glob.glob('**/*.xlsx', recursive = True)	#在当前路径下层层深入,找到所有的以'.xlsx'结尾的文件
# print(excel_list)	#查看筛选出的excel
  • 1
  • 2
  • 3

3.3 文件筛选代码

excel_selected = []
for excel in excel_list:
	data = pd.read_excel(excel)
	if type(data.loc[0, '种类']) == str:
		excel_selected.append(excel)	#将筛选出的excel存入列表
#print(excel_selected)	#打印筛选出的excel
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

3.4 将筛选出的文件打包

with zipfile.ZipFile('selected_excel.zip', 'w') as zipobj:
	for excel in excel_selected:
		zipobj.write(excel)
#		os.remove(files)	#删除筛选源文件	
  • 1
  • 2
  • 3
  • 4

3.5 将筛选出的Excel合并

df = pd.DataFrame()
for excel in excel_selected:
	df_ = pd.read_excel(excel)
	df = pd.concat([df, df_])
df.to_excel('data.xlsx', index = False)	
#data = pd.read_excel('data.xlsx')	#读取合并后的表格
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

所有代码如下:

import os
import pandas as pd
import glob

os.chdir(r'E:\study\Excel')
excel_list = glob.glob('**/*.xlsx', recursive = True)	#在当前路径下层层深入,找到所有的以'.xlsx'结尾的文件
# print(excel_list)	#查看筛选出的excel

excel_selected = []
for excel in excel_list:	#迭代excel_list列表
	data = pd.read_excel(excel)		#读取excel
	if type(data.loc[0, '种类']) == str:	#判断读取的Excel表格中单元格B2处是不是有字符串
		excel_selected.append(excel)	#将单元格B2处有字符串的Excel筛选出来,存入列表excel_selected中
#print(excel_selected)	#打印筛选出的excel

with zipfile.ZipFile('selected_excel.zip', 'w') as zipobj:
	for excel in excel_selected:
		zipobj.write(excel)
df = pd.DataFrame()
for excel in excel_selected:
	df_ = pd.read_excel(excel)
	df = pd.concat([df, df_])
df.to_excel('data.xlsx', index = False)	
#print(pd.read_excel('data.xlsx'))	#读取并打印合并后的表格

print('Finished!')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26

3.6 结果在该路径下生成了筛选出的zip文件及合并后的excel文件

注:合并excel代码参考:https://blog.csdn.net/lys_828/article/details/104932473

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/209938
推荐阅读
相关标签
  

闽ICP备14008679号