我已经pdf file
使用人工智能模型解析了,并获得了markdown
保存在变量 doc_parsed
中的解析结果。通过代码打印其示例内容如下print(doc_parsed[2].text[:1000])
# Details
|Name|Mr. XYZ|
|---|---|
|Age/Sex|XX YRS/X|
|Id.|01x40xxxxx|
|Refered By|Self|
|Collection On|xx/Aug/20xx 0x:x0AM|
|Collected By|xxxxxxx|
|Sample Rec. On|xx/Aug/20xx xx:x0 AM|
|Collection Mode|HOME COLLECTION|
|Reporting On|xx/Aug/20xx 0x:xx PM|
|BarCode|xxxxxx|
# Test Results
|Test Name|Result|Biological Ref. Int.|Unit|
|---|---|---|---|
|Electrolyte Profile, Serum| | | |
|SODIUM (Na+)|136.2|136 - 145|mmol/L|
|POTASSIUM (K+)|4.23|3.5 - 5.5|mmol/L|
|CHLORIDE(Cl-)|106.24|98.0 - 107|mmol/L|
|TOTAL CALCIUM (Ca)|9.00|8.6-10.2|mg/dL|
|IONIZED CALCIUM|4.52|4.4 - 5.4|mg/dl|
|NON-IONIZED CALCIUM|4.49|4.4 - 5.4|mg/dl|
|pH.(Method : ISE Direct)|7.39|7.35 - 7.45| |
问题:我尝试了几种方法将其拆分为带有分隔符的数据框列,例如使用&但都不起作用。|
pd.read_csv()
pd.read_table()
import pandas as pd
import io
pd.read_table(doc_parsed[2].text[:1000], sep="|")
ValueError:无效的文件路径或缓冲区对象类型:<class 'llama_index.core.schema.Document'>
import io
input_text = io.StringIO(print(doc_parsed[2].text[:1000]))
pd.read_csv(input_text,header=None, delimiter="|",
usecols = ["Parameter Name", "Result","Unit","Reference Range"])
EmptyDataError:文件中没有要解析的列
pd.read_csv(input_text,header=None, delimiter="|")
EmptyDataError:文件中没有要解析的列
感谢任何帮助。
可能的解决方案:
markdown 表格很烦人,但 read_csv 应该可以工作,这对我而言对你的数据有用
header =0
基本上告诉熊猫第一行是你的列名skipinitialspace=True
在分隔符后修剪字符串,这样你就可以得到干净的值该问题可能是由于 markdown 格式不完美或 pandas 默认不能很好处理的多余字符造成的。
可能的解决方案 您可以尝试以下方法:
使用此方法,我能够成功地将 markdown 解析为 DataFrame。
我希望这能给你一个干净的 DataFrame,其中的数据被很好地组织成列。