如何获取具有特定文本的两行之间的行?

问题描述 投票:0回答:2

我有这个数据框,我使用 PyTesseract 通过图像提取了它。但它提取了所有不相关的数据,如签名和图章。我只想要从“资产”行到“总负债”行的数据。我试过了

bs = bs[(bs['Purticulars'] == 'ASSETS') & (df['Purticulars'] == 'TOTAL LIABILITIES')

但似乎不起作用。

python pandas dataframe ocr python-tesseract
2个回答
1
投票

您可以先在“详细信息”列中找到值为“资产”和“总负债”的行的索引。

一旦你得到行索引,你就可以很容易地找到它们之间的所有行。

在这里:

assets_index = df.index[df['Purticulars'] == 'ASSETS'].tolist()[0]
liabilities_index = df.index[df['Purticulars'] == 'TOTAL LIABILITIES'].tolist()[0]
result = df.loc[assets_index:liabilities_index]
print(result)

0
投票
df.loc[df['Purticulars'].isin(['ASSETS','TOTAL LIABILITIES']).cumsum().eq(1) | df.eq('TOTAL LIABILITES')]

d = {'ASSETS':True,'TOTAL LIABILITIES':False}

m = df['Purticulars'].map(d).ffill().fillna(False) | df.eq('TOTAL LIABILITES')

df.loc[m]
© www.soinside.com 2019 - 2024. All rights reserved.