日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

用Python替代Adobe,零成本從PDF提取數據

來源: 責編: 時間:2023-11-28 09:34:28 272觀看
導讀一、簡介PDF文件是官方報告、發票和數據表的通用語言,然而從PDF文件中提取表格數據可能是一項挑戰。盡管Adobe Acrobat等工具提供了解決方案,但它們并不總是易于獲取或可自動化運行,而Python則是編程語言中的瑞士軍刀。

一、簡介

PDF文件是官方報告、發票和數據表的通用語言,然而從PDF文件中提取表格數據可能是一項挑戰。盡管Adobe Acrobat等工具提供了解決方案,但它們并不總是易于獲取或可自動化運行,而Python則是編程語言中的瑞士軍刀。本文將探討如何利用Python輕松實現PDF數據提取,而無需使用昂貴的軟件。uQg28資訊網——每日最新資訊28at.com

二、了解挑戰

PDF文件是為展示而設計的,而不是為提取數據。它們通常包含復雜的布局,在視覺上很吸引人,但在計算上卻無法訪問。因此,提取表格等結構化信息非常困難。uQg28資訊網——每日最新資訊28at.com

三、使用PyMuPDF提取文本

PyMuPDF是一款輕量級的庫,擅長讀取PDF文件并提取文本。只需幾行代碼,就可以讀取PDF并從任意頁面提取文本。本文從奔馳集團2022年第四季度年度報告中提取“股東權益變動綜合報表(Consolidated Statement of Changes in Equity)”,代碼如下。uQg28資訊網——每日最新資訊28at.com

import fitz  import pandas as pdimport re# --- PDF處理 ---# 定義PDF文件的路徑并打開文檔pdf_path = '..../Merc 2022Q4 Rep.pdf'pdf_document = fitz.open(pdf_path)# 選擇要閱讀的特定頁面page = pdf_document[200]# 獲取頁面的尺寸page_rect = page.rectpage_width, page_height = page_rect.width, page_rect.height# 定義感興趣區域的矩形(不包括腳注)non_footnote_area_height = page_height * 0.90clip_rect = fitz.Rect(0, 0, page_width, non_footnote_area_height)# 從定義的區域提取文本page_text = page.get_text("text", clip=clip_rect)lines_page = page_text.strip().split('/n')

四、規整數據

提取的文本通常帶有不需要的字符或格式。這就是預處理發揮作用的地方。Python的字符串處理功能使用戶能夠清洗和準備數據以轉換為表格格式。uQg28資訊網——每日最新資訊28at.com

# --- 數據清洗 ---# 定義要搜索的字符串并查找其索引search_string = 'Balance at 1 January 2021 (restated) 'try:    index = lines_page.index(search_string)    data_lines = lines_page[index:]except ValueError:    print(f"The string '{search_string}' is not in the list.")    data_lines = []# 如果不是數字或連字符,則合并連續字符串條目def combine_consecutive_strings(lines):    combined = []    buffer = ''        for line in lines:        if isinstance(line, str) and not re.match(r'^[-/d,.]+$', line.strip()):            buffer += ' ' + line if buffer else line        else:            if buffer:                combined.append(buffer)                buffer = ''            combined.append(line.strip())        if buffer:        combined.append(buffer)        return combinedcleaned_data = combine_consecutive_strings(data_lines)

五、使用Pandas創建表格

一旦數據清洗完成,就可以使用pandas了。這個功能強大的數據分析庫可以將一系列數據點轉換為DataFrame,即一個二維的、大小可變的、可能是異構的帶有標記軸的表格數據結構。uQg28資訊網——每日最新資訊28at.com

# --- 創建DataFrame ---# 根據列數將清洗后的數據分割成塊num_columns = 6data_chunks = [cleaned_data[i:i + num_columns] for i in range(0, len(cleaned_data), num_columns)]# 定義DataFrame的表頭headers = [    'Description',    'Share capital',    'Capital reserves',    'Retained earnings (restated)',    'Currency translation (restated)',    'Equity instruments / Debt instruments']# 使用數據塊和表頭創建DataFramefinancial_df = pd.DataFrame(data_chunks, columns=headers)# Display the head of the DataFrame to verify its structurefinancial_df.head()

如下所示是從PDF文件中提取的表格結果。uQg28資訊網——每日最新資訊28at.com

圖片圖片uQg28資訊網——每日最新資訊28at.com

六、結語

通過利用Python強大的庫,可以自動化繁瑣的PDF數據提取任務。這種方法不僅成本低,而且提供了Python開發者所喜愛的靈活性和強大功能。uQg28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-34615-0.html用Python替代Adobe,零成本從PDF提取數據

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 秒殺系統 Go 并發編程實踐!

下一篇: 層次分析法--可以幫助你做決策的簡單算法

標簽:
  • 熱門焦點
  • 影音體驗是真的強 簡單聊聊iQOO Pad

    大公司的好處就是產品線豐富,非常細分化的東西也能給你做出來,例如早先我們看到了新的vivo Pad2,之后我們又在iQOO Neo8 Pro的發布會上看到了iQOO的首款平板產品iQOO Pad。雖
  • 5月iOS設備性能榜:M1 M2依舊是榜單前五

    和上個月一樣,沒有新品發布的iOS設備性能榜的上榜設備并沒有什么更替,僅僅只有跑分變化而產生的排名變動,剛剛開始的蘋果WWDC2023,推出的產品也依舊是新款Mac Pro、新款Mac Stu
  • 一篇文章帶你了解 CSS 屬性選擇器

    屬性選擇器對帶有指定屬性的 HTML 元素設置樣式。可以為擁有指定屬性的 HTML 元素設置樣式,而不僅限于 class 和 id 屬性。一、了解屬性選擇器CSS屬性選擇器提供了一種簡單而
  • 破圈是B站頭上的緊箍咒

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之每年的暑期檔都少不了瞄準追劇女孩們的古偶劇集,2021年有優酷的《山河令》,2022年有愛奇藝的《蒼蘭訣》,今年卻輪到小破站抓住了追
  • 騰訊蓋樓,字節拆墻

    來源 | 光子星球撰文 | 吳坤諺編輯 | 吳先之“想重溫暴刷深淵、30+技能搭配暴搓到爽的游戲體驗嗎?一起上晶核,即刻暴打!”曾憑借直播騰訊旗下代理格斗游戲《DNF》一
  • 半導體需求下滑 三星電子DS業務部門今年營業虧損預計超10萬億韓元

    7月17日消息,據外媒報道,去年下半年開始的半導體需求下滑,影響到了三星電子、SK海力士、英特爾等諸多廠商,營收明顯下滑,部分廠商甚至出現了虧損。作為
  • iQOO 11S評測:行業唯一的200W標準版旗艦

    【Techweb評測】去年底,iQOO推出了“電競旗艦”iQOO 11系列,作為一款性能強機,該機不僅全球首發2K 144Hz E6全感屏,搭載了第二代驍龍8平臺及144Hz電競
  • iQOO 11S屏幕細節公布:首發三星2K E6全感屏 安卓最好的直屏手機

    日前iQOO手機官方宣布,新一代電競旗艦iQOO 11S將會在7月4日19:00正式與大家見面。隨著發布時間的日益臨近,官方關于該機的預熱也更加密集,截至目前已
  • 朋友圈可以修改可見范圍了 蘋果用戶可率先體驗

    近日,iOS用戶迎來微信8.0.27正式版更新,除了可更換二維碼背景外,還新增了多項實用功能。在新版微信中,朋友圈終于可以修改可見范圍,簡單來說就是已發布的朋友圈
Top 主站蜘蛛池模板: 泽普县| 雷州市| 远安县| 昌图县| 湖北省| 灵石县| 辽宁省| 革吉县| 金华市| 大丰市| 武穴市| 迭部县| 武山县| 江阴市| 旬邑县| 文昌市| 河北区| 镇远县| 德庆县| 茶陵县| 南开区| 商南县| 碌曲县| 清水县| 万安县| 康保县| 凤山县| 托里县| 扬中市| 大同县| 郓城县| 尉犁县| 阳东县| 邵东县| 伊宁县| 南郑县| 洛川县| 乐平市| 福鼎市| 宁晋县| 图片|