KNIME에서 엑셀파일 읽기
KNIME에서 xlsx 확장자인 엑셀파일 읽는방법을 알아볼건데
1. 데이터가 A1에서부터 시작하지 않을 때 데이터 읽는 방법과
2. 여러개의 시트가 존재할 때 첫 번째 시트가 아닌 다른 시트들을 읽는 방법에 대해 알아보겠다.
실습에 사용할 데이터는 다음과 같다.
xlsx 확장자인 엑셀파일이며,
다음과 같이 시트1과 시트2로 이루어져있다.
시트1은 세 개의 컬럼이 있으며 데이터가 A1에서 시작하지 않고 B2에서 시작한다.
시트2는 한 개의 컬럼으로 이루어져있으며, A1에서부터 데이터가 시작한다.
우선 데이터가 B2에서 시작하는 시트1 데이터를 불러오는 방법을 알아보겠다.
사용할 노드는 Excel Reader 이다.
더블클릭하거나 노드에 마우스 대고 왼쪽 위 설정표시 누르면 옵션을 설정할 수 있는 창으로 들어갈 수 있다.
옵션창은 다음과 같다.
Input Location은 저장된 파일을 불러오는 옵션이고
Select Sheet가 몇 번째 혹은 어떤 시트를 불러올지에 대한 옵션이다.
가장 아래 Preview는 불러온 데이터에 대한 예시 화면이다.
Input Location에 File 옆에 Browse... 를 눌러 저장된 datetime.xlsx 파일을 불러온다.
Sheet는 기본적으로 맨 처음 시트를 불러온다.
Preview를 보면 데이터가 A1 부터가 아닌 B2 부터 시작했기 때문에 첫 번째 열은 ?로 채워져잇고 두 번째 열부터 시작하며,
date, time1, time2가 컬럼명이 아니라 데이터로 인식되는 것을 볼 수 있다.
(Row ID는 기본으로 붙는 값이며 열로 인식하지 않는다. 말 그대로 행에 대한 index를 의미한다.)
비어있는 첫 번째 열을 없애고 date, time1, time2를 컬럼명으로 인식하기위해 맨 위에 File and Sheet 옆에 Data Area를 눌러준다.
A1부터 시작하지 않는 데이터를 불러오는 방법은 여러가지가 있는데
먼저 Read Area는 Whole sheet 그대로 해주고 Skip에서 Empty rows와 Empty columns를 선택해준다.
전체 데이터를 불러오되, 비어있는 행과 열은 skip하겠다는 의미이다.
단, 컬럼명은 Column Names에 Use values in row를 2로 설정해야 date, time1, time2가 데이터가 아닌 컬럼명으로 인식된다.
나머지는 기본값이고 아래 두개만 따로 설정해주면 된다.
이렇게 해주던가 혹은, Read Area에 Whole sheet가 아닌 Range by row and column를 B2부터 시작으로 직접 설정해준다.
단, 컬럼명은 마찬가지로 Column Names에 Use values in row를 2로 설정해주어야 한다.
OK 누르고 실행 시 11,210개 row와 3개의 column을 가진 데이터가 불러와지면 성공이다.
이번에는 두 번째 Sheet를 불러와보겠다. 역시 Excel Reader 노드를 사용하며 옵션창 켜서 Input Location에 해당 파일을 불러오는 것 까지는 동일하다.
두 번째 Sheet는 데이터가 A1에서부터 시작하기때문에 Data Area는 따로 설정해줄게 없고, 불러 올 시트만 설정해주면 된다.
Select Sheet 옵션에서 선택해주면 되는데
아무것도 설정하지 않았을 때 가장 기본이 First with data이다. 즉, 가장 처음 시트를 불러오겠다는 뜻이다.
우리는 두 번째 시트(시트2)를 불러올 거기 때문에 By name 혹은 By position 옵션으로 설정해주면 된다.
By name은 시트 이름으로 설정한 시트를 불러오겠다는 뜻이다.
자동으로 해당 데이터가 가지고있는 시트들이 뜬다.
시트2를 불러올거기때문에 시트2를 선택한다.
혹은 밑에 By Position으로 선택할 수도 있다.
대부분의 언어가 숫자 1이 아닌 0부터 시작하듯 KNIME도 0부터 시작한다.
즉, 0이 가장 처음 시트를 의미한다.
우리는 두 번째 시트를 가져올거기 때문에 1로 설정해주면 된다.
실행 시 11,210건의 행과 1건의 열로 이루어져있으면 성공이다.
'KNIME' 카테고리의 다른 글
[KNIME] Hyper parameter optimization (1) | 2024.09.02 |
---|---|
[KNIME] Loop 실습(3) (0) | 2024.08.29 |
[KNIME] Loop 실습(2) (0) | 2024.08.29 |
[KNIME] Loop 실습(1) (4) | 2024.08.28 |
[KNIME] String to Date&Time 노드 실습(format 설정) (4) | 2024.08.27 |