热线电话:13121318867

登录
2023-07-18 阅读量: 402
cda数据分析——使用pdfplumper库解析pdf文件中的表格进行分析


这是一个对pdf文件一分一段表数据进行分析的项目分享

首先利用pdfplumber这个库,用page.extract_tables识别并提取pdf中的表格数据,

用pdf.pages来获得第7页的数据并存储在空列表中,循环遍历后将列表中的每个部分数据的数据类型变成dataframe,再将该页的数据连接成一个大的dataframe,然后保存为csv文件,再将第八页数据加入,mode设为a,将第八页数据也合并到yaohao.csv文件,再通过bool索引获得463-582的数据

极差的计算:极差 = 最大值 - 最小值=88

总体百分位数:0.25 194.25 25百分位数

0.50 203.50 中位数

0.85 218.00 85百分位数

均值:通过公式 = 204.359649122807

方差:通过公式= 210.51552553951237

标准差:通过之前求到的方差和得到标准差结果= 14.50915316410687

Python实现:

import pdfplumber

import numpy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

plt.style.use("seaborn")

with pdfplumber.open('data/m.pdf') as pdf:

# 获取

page = pdf.pages[7]

# 提取表格数据

tables = page.extract_tables()

# 创建一个空列表来存储表格

all_tables = []

# 遍历提取的表格

for table in tables:

# 将表格数据转换为DataFrame对象

df = pd.DataFrame(table[1:])

# 将DataFrame添加到列表中

all_tables.append(df)

# 将所有表格连接成一个单独的DataFrame

combined_df = pd.concat(all_tables)

# 将合并的DataFrame保存到CSV文件

combined_df.to_csv('yaohao.csv', mode='a',index=False)

# 打印合并的DataFrame

print(combined_df)

yifen = pd.read_csv("yaohao.csv")

renshu = yifen[(yifen.高考成绩 >= 463) & (yifen.高考成绩 <= 582)] .人数

#bool索引

range_e = renshu.max() - renshu.min()#极差

# 计算百分位数

percentiles = renshu.quantile([0.25, 0.50, 0.75])

percentiles

# 计算平均数

mean = renshu.mean()

mean

# 计算方差

variance = renshu.var()

variance

# 计算标准差

std = renshu.std()

std

#筛选dataframe

yifen_exa=yifen[(yifen.高考成绩 >= 463) & (yifen.高考成绩 <= 582)]


0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据