将PDF中的表格读取出来,并写入其他文件格式
2020专插本投档情况公布了,想着能不能分析一下今年得数据,于是找到得文件是PDF格式得,文件格式不是熟悉得csv,excel…
于是有这么一个想法能不能把PDF格式得文件转为我熟悉操作得文件格式
便有以下代码,作为学习得记录
找到资料pdf格式如下(官网下载下来得)
代码实现,这里把PDF格式转为Excel格式
import pdfplumber
import xlwt
import pandas as pd
#pdfplumber库 是一个可以处理pdf格式信息的库
#安装直接采用pip即可。命令行中输入
#pip install pdfplumber
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('Sheet1')
#自定义了每一列得标题,并写入文件得第一行中
One =['院校代码','学校', '专业','文理科','执行计划招生人数','实际招生人数','投档录取分数线']
# sheet.insert_rows(One)
for item in range(len(One)):
sheet.write(0, item, One[item])
#第一行写入了标题,那么写入得内容就需要冲第2行开始写入 也就是从1开始写入
i = 1
path = r'C:\Users\hzxc\Desktop\3052843.pdf' #PDF文件位置
pdf = pdfplumber.open(path)
print("开始读取数据")
print('\n')
# .pages是一个包含页面信息的列表
# .extract_tables() 提取页面的表格
for page in pdf.pages:
for table in page.extract_tables():
del(table[0]) #目的是删除每一页中标题(表头)信息
for row in table:
print(row)
for j in range(len(row)):
sheet.write(i,j,row[j])
i += 1
print('-----分割线-----')
pdf.close()
#保存为Excel表
workbook.save(r'E:\2020插本.xls')
print('写入成功')
获取到文件,并进行了简单得数据分析
import pandas as pd
dataxls = pd.read_excel(r'E:\2020插本.xls',
usecols=[1,2,3,5,6])
print('最大分数'+str(dataxls["投档录取分数线"].max()))
print('最低分数'+str(dataxls["投档录取分数线"].min()))
#arr[arr['numTest']>2]
print(dataxls[dataxls["投档录取分数线"]==dataxls["投档录取分数线"].max()])
print(dataxls[dataxls["投档录取分数线"]==dataxls["投档录取分数线"].min()])
print(dataxls["实际招生人数"].sum())
print(dataxls.groupby("学校")["实际招生人数"].sum())