我试图使用Python包tabula-py读取pdf中的table,看来pdf表单元格中的换行符会将原始单元格中的内容分成多个单元格。
我试图搜索各种python软件包来解决此问题。似乎tabula-py是将pdf表转换为熊猫数据的最稳定的软件包。但是,如果无法解决此问题,则必须转向online service,它将为我产生理想的excel输出。
from tabula import read_pdf
df=read_pdf("C:/Users/Desktop/test.pdf", pages='all')
我希望可以使用this正确转换pdf表。
答案 0 :(得分:1)
Tabula不再具有“电子表格”选项。而是使用“ lattice”选项来避免换行符分成新的行。像这样的代码:
import tabula
# Read pdf into DataFrame
df = tabula.read_pdf("FDA EPC Text Phrases (updated March 2018.pdf", pages='all',
lattice=True)
print(df)
答案 1 :(得分:0)
您可以将'spreadsheet'选项与'True'值一起使用,以省略由换行引起的多行NAN值。
import tabula
# Read pdf into DataFrame
df = tabula.read_pdf("FDA EPC Text Phrases (updated March 2018.pdf", pages='all', spreadsheet=True)
print(df)
#print(df['Active Moiety Name'])
#print(df['FDA Established Pharmacologic Class\r(EPC) Text Phrase\rPLR regulations require that the following\rstatement is included in the Highlights\rIndications and Usage heading if a drug is a\rmember of an EPC [see 21 CFR\r201.57(a)(6)]: “(Drug) is a (FDA EPC Text\rPhrase) indicated for [indication(s)].” For\reach listed active moiety, the associated\rFDA EPC text phrase is included in this\rdocument. For more information about how\rFDA determines the EPC Text Phrase, see\rthe 2009 "Determining EPC for Use in the\rHighlights" guidance and 2013 "Determining\rEPC for Use in the Highlights" MAPP\r7400.13.'])
输出:
1758 ziconotide N-type calcium channel antagonist
1759 zidovudine HIV nucleoside analog reverse transcriptase in...
1760 zileuton 5-lipoxygenase inhibitor
1761 zinc cation copper absorption inhibitor
1762 ziprasidone atypical antipsychotic
1763 zoledronic acid bisphosphonate
1764 zoledronic acid anhydrous bisphosphonate
1765 zolmitriptan serotonin 5-HT1B/1D receptor agonist (triptan)
1766 zolmitriptan serotonin 5-HT1B/1D receptor agonist (triptan)
1767 zolpidem gamma-aminobutyric acid (GABA) A agonist
1768 zonisamide antiepileptic drug (AED)