python 批处理合并表格_python xlwings实现报表自动化 EXCEL批量加字段,合并

一、需求解析李鑫:python爬虫+xlwings包excel自动化爬取全国医院信息(A+医学百科)+描述性统计​zhuanlan.zhihu.com

在这篇文章里,分省,分类别爬取了全国的医院信息。现在我们需要做加字段合并操作。

出现两个问题:医院等级这个字段需要我们加上去。

两百多张表需要做成一张表。

二、思路逻辑

读取文件夹里的文件列表 ——> 读取EXCEL表格 ——> 获取每张表格行数 ——> 插入等级 ——> 合并时值保留第一张表的表头此为目录

三、代码详解

读取文件列表

for jibie in yiyuan_jibie:

path_name = r'C:/Users/alex/Desktop/医院信息爬虫数据/分等级/' + jibie + '/'

list_jibie = os.listdir(path_name)

#插入医院等级这个字段

import xlwings as xw

for jibie in yiyuan_jibie:

for xl in list_jibie:

xlpath = r'C:/Users/alex/Desktop/医院信息爬虫数据/分等级/' + jibie + '/' + xl

wb = xw.Book(xlpath)

sht = wb.sheets[0]

nrows = sht.api.UsedRange.Rows.count

sht.range(f'I1:I{nrows}').value = jibie

wb.save()

wb.close()

#合并EXCEL表格

import os

import xlrd

import pandas as pd

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

def file_name(file_dir):

list=[]

for file in os.listdir(file_dir):

if os.path.splitext(file)[1] == '.xls':

list.append(file)

return list

#yiyuan_jibie = ["三级甲等","三级乙等","三级丙等","二级甲等","二级乙等","二级丙等","一级甲等","一级乙等","一级丙等"]

for jibie in yiyuan_jibie:

path = r'C:/Users/alex/Desktop/医院信息爬虫数据/分等级/' + jibie

wks = file_name(path)

#print(wks)

data = [] #定义一个空list

for i in range(len(wks)):

read_xlsx = xlrd.open_workbook(path + '\\' + wks[i])

sheet1 = read_xlsx.sheets()[0] #查看sheet1的数据

nrow = sheet1.nrows

title = sheet1.row_values(0) #查看第1行数据

for j in range(1,nrow): #逐行打印

data.append(sheet1.row_values(j))

content= pd.DataFrame(data)

#修改标题

content.columns= title

#写入文件

#写入csv文件

#content.to_csv(path+'\\py_union.xlsx', sep=',', header=True, index=False)

#写入excel文件

content.to_excel(path+'\\' + jibie + '.xlsx', header=True, index=False)

四、结语

一张有全国医院信息的表格就完成了。如果想要数据的留下邮箱就好。后面会有一些简单的分析。

码字不易,求赞求关注!谢谢!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值