从pdf中提取的表包括表头和子表头,并且需要根据表头值添加一列



我需要从pdf文件中提取表格信息,它包含标题和子标题。我使用了python tabula包,它给了我这样的东西:

副标题3nandddfff//tr>南
标题 unnanmed1 未命名2
副标题1 副标题2
A nan
1 aaa bbb
2 ccc
3 eee
B
4 ggg hhh
5 iii jj
6 kkk lll

最后,我想出了一些硬代码来解决这个问题。但如果有人能提供一个更有效的方法,我将非常感谢。谢谢。

df = df.rename(columns = {"Header": "subheader1", "unnanmed1": 
"subheader2", "unnamed2": "subheader3"})
df['Header'] = NaN
df1 = df.drop([0])
df1 = df1.reset_index(drop = True)

nan_row_index = df1[df1['subheader3'].isna()]
nan_row_index = nan_row_index.index.values
if nan_row_index[-1] < df1.index.values[-1]:
nan_row_index_final = np.append(nan_row_index, 
df1.index.values[-1])
else:
nan_row_index_final = nan_row_index

for i in range(len(nan_row_index_final)):
if nan_row_index_final[i] == df1.index.values[-1]:
print("out of range")
break
else:
print(nan_row_index_final[i])
for j in range(nan_row_index_final[i],nan_row_index_final[i+1]+1):
df1.iloc[j, 3] = df1.iloc[nan_row_index_final[i],0]
df1 = df1.dropna().reset_index(drop = True)

最新更新