PDF 파일에서 데이터 추출
게시된 데이터를 분석할 수 있지만 때때로 PDF 파일의 테이블을 데이터 테이블로 만들고 싶을 수 있습니다. 특히 관공청 등에서 공개되고 있는 데이터는 Excel이나 csv 형식이 아니고, PDF 파일안에 테이블로서 매입되고 있는 것이 의외로 많습니다.
그런 때, 4,5년 전까지는 PDF 파일상에서 해당의 테이블을 선택해 카피해, Excel나 JMP에 페이스트 하고 있었습니다만, 제대로 데이터로서 인식하지 않는 일도 많이 있어, 최악의 경우는 포기하고 수동으로 데이터를 만들 수도있었습니다.
그럴 때 JMP 버전 15에서 추가되었습니다. "PDF 로딩 마법사"는 나에게 복음이었다. 지금까지 시간이 걸리고 있던 PDF로부터의 데이터 작성을, 책의 몇 초로 할 수 버립니다! ! 따라서 데이터를 깊게 분석하는 데 남은 시간을 돌릴 수 있습니다.
지난번 내가 쓴 블로그 기사(젠더 갭 지수) 는 PDF 보고서에 있는 테이블을 인용하고 있습니다만, PDF 로딩 마법사의 기능이 없었다면, 데이터를 작성하는 것이 번거롭고 좌절하고 있었을 것입니다.
그래서이 블로그에서, 「PDF 로딩 마법사」의 대단한 곳을 소개해 봅니다. 벌써 이 기능을 사용하고 있는 분이라도 의외로 모르는 일이 있을지도 모르기 때문에, 꼭 읽어 주세요.
PDF 로드 마법사로 할 수 있는 작업
PDF 로드 마법사는 PDF 파일을 로드하기 전에 미리 보기를 참조하면서 로드할 데이터를 조정하여 로드하는 기능입니다.
JMP의 메뉴 바에서 [파일] > [열기]를 선택하고 로드할 PDF 파일을 선택하면 자동으로 [PDF 로드 마법사]가 시작됩니다(*1).

위 그림과 같이 마법사의 왼쪽에 미리보기가 표시됩니다. PDF에 있는 테이블을 자동으로 인식하고 인식된 내용이 오른쪽의 '테이블 미리보기'에 표시됩니다.
여기에서 읽고 싶은 테이블이 인식되고 있는지 확인하고, 문제 없으면 [OK] 버튼을 클릭하면 JMP 데이터 테이블로 열립니다.

이 예에서는 논문에 설명된 실험 데이터를 쉽게 읽을 수 있습니다.
이 후, 실례와 함께 대단한 곳을 2개 픽업해 소개합니다.
굉장한 곳 그 1: 같은 열명의 테이블을 자동적으로 1개에 연결해 준다
다음은 내각 관방이 공개하고 있는 일반직 국가공무원 재직상황 통계표의 PDF입니다(*2). 이 표로부터 각 부처의 비상근 직원의 인원수, 전년차(인), 전년대비(%)를 JMP의 데이터 테이블로 하고 싶다고 합니다.

자동적으로 PDF내의 테이블을 인식하는 기능이 도움이 되는 일도 있습니다만, 실무상은 PDF안에 있는 테이블 모두를 읽어들이는 경우라고 하는 것은 별로 없고, 특정의 테이블만 읽고 싶다고 하는 경우가 많습니다.
이 때 마법사의 오른쪽 상단에 [모든 테이블 무시] 버튼을 클릭하여 자동 선택을 취소합니다.
그런 다음 왼쪽 미리보기에서 가져올 테이블이있는 페이지로 이동하고 해당 페이지의 왼쪽 상단에있는 빨간색 삼각형 버튼에서 [이 페이지 자동 감지] 를 선택하면 해당 페이지의 테이블만 자동으로 검색됩니다.

그러나 일부 테이블에서는 자동 감지가 작동하지 않는 경우도 있습니다. 그 때는 테이블로 하고 싶은 곳을 드래그해 직사각형을 작성하면, 직사각형의 테두리 안에 있는 테이블을 인식합니다. 실무상, 이 드래그하여 테이블을 선택하는 방법이 편리합니다.

해당 테이블을 선택한 후 미리보기 오른쪽에 "열 이름이 일치하는 테이블 연결" 를 선택하고 확인 버튼을 클릭합니다.

그러면 2개로 나뉘어 표시되어 있던 테이블을 1개의 테이블에 정리해 읽어들입니다.
보통은 2개의 테이블이 읽히고, 그 후 [연결]을 사용해 테이블을 1개에 정리할 필요가 있는 곳을, 이 마법사로 해 주는 것입니다.
그 때문에, 작성된 데이터 테이블을 조금 가공하는 것만으로, 직원수, 전년차, 전년대비의 히스토그램을 작성해, 이상치가 되는 부처를 조사할 수 있었습니다.

굉장한 곳 2: 여러 페이지에 걸친 표도 하나에 연결해 준다
이 PDF 파일은 스키 점프의 국가별 단체전 결과를 나타냅니다(*3). 1위~8위까지의 결과가 표시되어 있습니다만, 1페이지에는 들어가지 않고 2페이지에 걸쳐 있습니다. 국가별로 테이블 형식으로 되어 있습니다만, 이러한 테이블도 정리해 1개의 테이블로 하고 싶습니다.

이 PDF를 미리 봅니다. 대상 테이블을 선택하고, 모든 테이블을 하나로 연결 확인하고 확인 버튼을 클릭합니다.

여러 테이블을 하나로 정리해 읽어주었습니다. 여기서 사용한 PDF 파일은, 전례와는 달리 열명이 없는 테이블도 있으므로, 「모든 테이블을 1개에 연결」을 사용했습니다.
이 후, 약간의 데이터 가공이 필요합니다만, 별로 시간을 들이지 않고 팀마다의 득점 플롯(4인분)을 만들 수 있었습니다. 4명의 점수가 변동하는 팀과 편차가 없는 팀이 있어 흥미로운 결과가 되고 있습니다.

앞으로도 이 놀라운 기능을 구사해 데이터 분석에 힘쓰겠습니다! !
by 마스카와 나오히로(JMP Japan)
PDF 파일 인용
*1 : Rational design of a scalable bioprocess platform for bacterial cellulose production
https://www.sciencedirect.com/science/article/abs/pii/S0144861718312839
*2: 내각 관방 일반직 국가공무원 재직상황 통계표
https://www.cas.go.jp/jp/gaiyou/jimu/jinjikyoku/files/20220701_toukeihyou_gaiyou.pdf
*3: FIS SKI JUMPING WORLD CUP Official Results
https://medias2.fis-ski.com/pdf/2023/JP/3093/2023JP3093RL.pdf