这是一个对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)]








暂无数据