我需要从pdf文件中提取表格信息,它包含标题和子标题。我使用了python tabula包,它给了我这样的东西:
标题 | unnanmed1 | 未命名2 |
---|---|---|
副标题1 | 副标题2 | 副标题3|
A | nan | nan|
1 | aaa | bbb |
2 | ccc | ddd|
3 | eee | fff//tr>|
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)