제퍼넷 로고

Python을 사용하여 문서 파일에서 표 형식 데이터를 추출하는 방법은 무엇입니까?

시간

이 기사는 데이터 과학 Blogathon

개요

데이터는 어디에나 존재합니다. 우리가 수행하는 모든 작업은 일부 또는 다른 형태의 데이터를 생성합니다. 그러나 이 데이터는 구조화된 형식으로 제공되지 않을 수 있습니다. 데이터 필드로 시작하는 초보자는 종종 CSV, TSV 또는 일부 텍스트 파일과 같은 표준 형식의 데이터 세트에 대해 교육을 받습니다. CSV 파일은 pandas 데이터 프레임에 로드하고 더 쉽게 조작할 수 있으므로 가장 선호되는 파일입니다. 순진한 Python 파일 처리 모듈을 사용하여 텍스트 파일을 로드할 수 있습니다.

그러나 실제로는 모든 유형의 문서가 분석에 필요한 데이터를 가질 수 있습니다. 회사의 인턴 직책에 지원하는 동안 내 과제는 Doc 파일에 있는 데이터에서 분석을 도출하는 것이 었습니다. 이 기사에서는 Doc 파일의 ETL 프로세스, Doc 및 Docx 확장의 차이점, Doc에서 Docx로의 변환에 대해 설명하고 마지막에는 해당 데이터에서 대화식 플롯을 만든 방법을 보여줍니다.

문서에서 표 형식 데이터 추출
작성자의 이미지, Canva에서 제작

문서와 Docx의 차이점

doc 파일을 처리하는 동안 '.doc' 및 '.docx'라는 두 가지 확장자를 보게 됩니다. 두 확장자는 모두 Microsoft Word 또는 기타 워드 프로세싱 도구를 사용하여 만들 수 있는 Microsoft 워드 문서에 사용됩니다. 차이점은 2007년까지 "doc" 확장자가 광범위하게 사용되었다는 사실에 있습니다.

이 버전 이후 Microsoft는 Microsft Word Open XML 형식 문서인 "Docx"라는 새로운 확장 기능을 도입했습니다. 이 확장을 통해 파일은 더 작고, 저장하기 쉽고, 덜 손상되었습니다. 또한 이러한 Docx 파일을 쉽게 관리할 수 있는 Google 스프레드시트와 같은 온라인 도구에 대한 문을 열었습니다.

Python에서 Doc을 Docx로 변환

오늘날 모든 파일은 기본적으로 Docx 확장자로 생성되지만 여전히 Doc 확장자를 가진 오래된 파일이 많이 있습니다. Docx 파일은 데이터를 저장하고 공유하는 더 나은 솔루션이지만 Doc 파일에 저장된 데이터를 무시할 수 없습니다. 큰 가치가 있을지도 모릅니다. 따라서 Doc 파일에서 데이터를 검색하려면 Doc 파일을 Docx 형식으로 변환해야 합니다. 플랫폼(Windows 또는 Linux)에 따라 이 변환 방법이 다릅니다.

Windows의 경우

수동으로 Word 파일을 Docx로 저장하려면 확장자가 ".docx"인 파일을 저장하기만 하면 됩니다.

doc에서 docx로 변환

Python을 사용하여 이 작업을 수행합니다. Window의 COM(Component Object Model)을 사용하면 Windows 응용 프로그램을 다른 응용 프로그램에서 제어할 수 있습니다. pywin32는 이 COM과 상호 작용하고 Python을 사용하여 Windows 응용 프로그램을 자동화할 수 있는 Python 래퍼 모듈입니다. 따라서 구현 코드는 다음과 같습니다.

wc w = wc.Dispatch('Word.Application') doc = w.Documents.Open("file_name.doc") doc.SaveAs("file_name.docx", 32)로 win16com 가져오기 클라이언트에서

코드 분석:

  1. 먼저 Python 설치 시 미리 설치된 모듈인 win32com 패키지에서 클라이언트를 가져옵니다.
  2. 다음으로 Word 응용 프로그램에 대한 Dispatch 개체를 만듭니다.
  3. 그런 다음 이 문서를 열고 Docx 확장자로 저장합니다.

Linux의 경우

LibreOffice 빌드 내 변환기를 직접 사용할 수 있습니다.

lowriter --convert-to docx testdoc.doc

Python에서 Docx 파일 읽기

Python에는 Docx 파일을 읽고 조작하기 위한 모듈이 있습니다. "python-docx"라고 합니다. 여기에는 모든 필수 기능이 이미 구현되어 있습니다. pip를 통해 이 모듈을 설치할 수 있습니다.

pip 설치 python-docx

Docx 문서가 어떻게 구성되어 있는지 자세히 설명하지는 않겠지만 추상적인 수준에서 실행, 단락 및 문서 개체의 세 부분으로 구성됩니다. 이 자습서에서는 단락 및 문서 개체를 다룰 것입니다. 실제 코드 구현으로 이동하기 전에 데이터가 추출되는지 확인하십시오.

데이터 추출 | 표 형식 데이터 문서 추출

새 Docx 파일의 데이터

새 Docx 파일에는 여러 간격으로 환자의 포도당 수준이 포함됩니다. 각 데이터 행에는 ID, 타임스탬프, 유형 및 포도당 수준 판독값이 있습니다. 익명성을 유지하기 위해 환자의 이름을 흐리게 처리했습니다. 이 데이터를 추출하는 절차:

1. 모듈 가져오기

문서 가져오기

2. Docx 파일 문서 개체를 만들고 Docx 파일의 경로를 전달합니다.

Text = docx.Document('file_name.docx')

3. 빈 데이터 사전 만들기

데이터 = {}

4. 문서 개체에서 단락 개체를 만듭니다. 이 개체는 문서의 모든 단락에 액세스할 수 있습니다.

단락 = Text.paragraphs

5. 이제 모든 단락을 반복하고 텍스트에 액세스하여 데이터 사전에 저장합니다.

for i in range(2, len(Text.paragraphs)): data[i] = tuple(Text.paragraphs[i].text.split('t'))

여기에서는 탭 구분 기호가 있는 행 중 하나를 보는 것처럼 "t"에서 텍스트를 분할해야 했습니다.

6. 사전 값에 액세스

data_values ​​= 목록(data.values())

이제 이러한 값이 목록으로 변환되어 pandas 데이터 프레임에 전달할 수 있습니다. 사용 사례에 따르면 불필요한 열 삭제 및 타임스탬프 변환과 같은 몇 가지 추가 단계를 따라야 했습니다. 다음은 초기 Doc 파일에서 가져온 최종 pandas 데이터 프레임입니다.

데이터 | 표 형식 데이터 문서 추출

python-docx 모듈을 사용하여 수행할 수 있는 작업이 많이 있습니다. 파일을 로드하는 것 외에도 이 모듈을 사용하여 Docx 파일을 만들 수 있습니다. 제목, 단락을 추가하고, 텍스트를 굵게, 기울임꼴로 만들고, 이미지, 표 등을 추가할 수 있습니다! 다음은 전체 문서 모듈의.

보너스 단계: Plotly를 사용하여 플롯

이 문서의 주요 목표는 doc 파일에서 pandas 데이터 프레임으로 테이블 형식 데이터를 추출하는 방법을 보여주는 것이었습니다. ELT 주기를 완료하고 이 데이터를 플롯 도서관! 모르는 경우 Plotly는 대화형 플롯을 만드는 데 도움이 되는 놀라운 시각화 라이브러리입니다.

이러한 플롯은 대부분의 항목을 사용자 정의할 수 있으므로 많은 노력이 필요하지 않습니다. 이 라이브러리의 사용법을 설명하는 Analytics Vidhya에 대한 많은 기사가 있습니다. 내 사용 사례의 경우 플롯 구성은 다음과 같습니다.

import plotly.graph_objects as go fig = go.Figure() fig.add_trace(go.Scatter(x=doc_data.index, y=doc_data['Historic Glucose (mg/dL)'].rolling(5).mean() , mode='lines', marker=dict( size=20, line_width=2, colorscale='Rainbow', showscale=True, ), name = 'Historic Glucose (mg/dL)' )) fig.update_layout(xaxis_tickangle= -45, font=dict(size=15), yaxis={'visible': True}, xaxis_title='날짜', yaxis_title='포도당', template='plotly_dark', title='Glucose Level Over Time' ) fig .update_layout(hovermode="x")

음모
작성자 별 이미지

결론

이 기사에서는 doc 파일이 무엇인지, Doc과 Docx 파일 확장자의 차이점, Doc 파일을 Docx 파일로 변환하는 방법, Docx 파일을 로드하고 조작하는 방법, 마지막으로 이 테이블 형식 데이터를 pandas 데이터 프레임에 로드하는 방법에 대해 설명했습니다.

내 모든 기사를 읽고/탐색하려면 내 마스터 기사 목록 어떤 플랫폼에서든 새 기사를 게시할 때마다 업데이트됩니다!

럭셔리 의심, 질문 또는 잠재적 기회, 다음을 통해 저에게 연락할 수 있습니다.

1. 링크드인 — in / kaustubh-gupta /

2. 트위터 — 안녕하세요.

3. 깃허브 — Kaustubhgupta

4. 중간 — 안녕하세요.

Bokeh를 사용하는 Interactive Dashboard의 이 기사에 표시된 미디어는 Analytics Vidhya의 소유가 아니며 작성자의 재량에 따라 사용됩니다.

PlatoAi. Web3 재창조. 데이터 인텔리전스 증폭.
액세스하려면 여기를 클릭하십시오.

출처: https://www.analyticsvidhya.com/blog/2021/09/how-to-extract-tabular-data-from-doc-files-using-python/

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?