일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MYSQL
- power-bi
- 텐서플로우
- 판다스
- pandas
- leetcode
- Revising the Select Query II
- 리스트
- 파이썬
- 물만날물고기
- 나임
- DB
- KNIME
- SQL
- 데이터분석솔루션
- sklearn
- python
- 데이터프레임
- 물 만날 물고기
- 해커랭크
- colab
- 코랩
- HackerRank
- 태블로
- pyinstaller
- 프로그래머스
- 코딩테스트
- sorted()
- KNIME 데이터 분석
- Tableau
- Today
- Total
물 만날 물고기
[KNIME] Workflow - 각 행(인덱스)별 합계 컬럼 추가하기 본문
🔍 예상 검색어
# KNIME 각 행별 합계 구하기
# KNIME 각 인덱스별 합계 구하는 법
# KNIME 각 컬럼들 더해서 인덱스 합계 구하기
# KNIME 행 합계 구하기
# KNIME 인덱스 합계 구하기
# KNIME 시각화
# KNIME Unpivot
# KNIME Box-Plot (박스플랏)
# Column Aggregator
# Math Formula
# Column Expressions
# Unpivoting
# Conditional Box Plot
해당 포스팅은 데이터 분석 솔루션 KNIME 을 이용하여 주어진 데이터의 각 행(인덱스)별로 합계를 계산 하여 컬럼을 추가하는 방법에 대하여 정리하였습니다.
▼ 문제
다음은 학생 10명의 수능 모의고사 성적을 임의로 생성한 샘플 데이터입니다. 다음과 같이 각 학생별로 모든 과목의 점수를 더하여 [총점]을 계산한 컬럼을 만들어보시오.
▼ Workflow (사용 노드 : <Column Aggregator> , <Math Formula>, <Column Expressions> )
사용된 워크플로우는 다음과 같으며, 동일한 결과라도 각각 다른 방법으로 진행할 수 있으므로 참고하시기 바랍니다.
1. <Python Source> 노드를 이용하여 데이터 생성하기
이번 샘플 데이터는 <Python Source> 노드를 이용하여 생성하였습니다. 이름을 만들기 위해서 Faker 모듈을 이용하였고, 점수는 random 모듈을 이용하여 생성하였습니다. 관련 코드는 아래 코드블럭을 참고하시기 바랍니다.
import pandas as pd
from pandas import DataFrame
import random
from faker import Faker
# Create empty table
faker = Faker("ko_KR")
name = [faker.name() for i in range(10)]
kor = [random.randint(30, 100) for i in range(10)]
math = [random.randint(10, 100) for i in range(10)]
his = [random.randint(10, 50) for i in range(10)]
eng = [random.randint(40, 100) for i in range(10)]
che = [random.randint(10, 50) for i in range(10)]
che2 = [random.randint(10, 50) for i in range(10)]
lang = [random.randint(10, 50) for i in range(10)]
output_table = pd.DataFrame(
{"이름": name,
"언어": kor,
"수학": math,
"외국어": eng,
"한국사": his,
"화학1": che,
"화학2": che2,
"제2외국어": lang} )
2. <Column Aggregator>를 이용한 컬럼 연산하기
2.1 <Column Aggregator>노드를 이용하여 총점 계산에 사용될 컬럼들을 선택하여 주고, option 에서는 컬럼에 적용할 연산방법을 선택하여 줍니다. 저는 총점을 계산할 예정이므로 Sum method를 선택하였고, 컬럼 이름은 총점으로 변경해주었습니다.
2.2 노드를 실행한 결과 [총점] 컬럼이 추가된 것을 확인할 수 있습니다.
3. <Math Formula>를 이용한 컬럼 연산하기
3.1 <Math Formula> 노드를 이용하여 [총점]이 계산될 수 있도록 Expression을 작성하고, Append Column 을 이용하여 추가할 컬럼명을 입력하고 실행합니다.
3.2 노드를 실행한 결과 [총점] 컬럼이 추가된 것을 확인할 수 있습니다.
4. <Column Expressions>를 이용한 컬럼 연산하기
4.1 <Column Expressions> 노드를 실행하여, 학생별 총점이 계산될 수 있도록 Expression 수식을 작성합니다. Type과 Output Column 을 설정하여 [총점] 컬럼을 추가할 수 있습니다.
5. 추가 시각화 ( <Unpivoting> 노드 + <Conditional Box Plot> 노드)
5.1 <Unpivoting> 노드를 이용하여 각 컬럼에 있는 과목별 점수들을 Unpivoting합니다. 노드를 실행하게 되면 7개 컬럼으로 되어 있었던 과목 및 점수가 2개의 컬럼으로 정리된 것을 확인할 수 있습니다.
5.2 <Conditional Box Plot> 노드를 이용하여 시각화를 진행합니다. Category Columns 옵션에는 범주화된 값이 있는 컬럼을 선택하고, Selected Column에는 ColumnValues를 선택하고 실행합니다.
5.3 설정을 완료하여 노드를 실행하면 아래와 같이 시각화된 Box-plot 차트를 확인할 수 있습니다.
이상으로 각 행(인덱스)별 컬럼의 합계를 구하는 방법에 대해서 확인하였습니다. 세가지 방법 중 본인 워크플로우에 적절한 방법을 사용하시면 좋을 것 같습니다
그 중 <Column Aggregator> 노드는 컬럼들의 합계를 구하는 것 외에도 다양한 Method 선택을 통해서 컬럼간의 연산을 진행할 수 있습니다. 다음에 기회가 된다면 각 인덱스별 컬럼간 평균, 분산 등을 구해보는 과제들에 대해서도 정리해보겠습니다.
# 참고 자료
Column Aggregator – KNIME Community Hub
How to Sum Multiple Columns - KNIME Analytics Platform - KNIME Community Forum
'KNIME' 카테고리의 다른 글
[KNIME] Node - "Nuemeric Binner" 연속형 변수를 범주화 하고 싶을 때 (구간화 Binning) (0) | 2023.02.07 |
---|---|
[KNIME] Workflow - Missing Value(결측치) 확인 및 처리하기 (0) | 2023.01.28 |
[KNIME] Setting - Memory 할당 변경하기 (RAM 메모리 증가, 감소) (0) | 2023.01.18 |
[KNIME] Workflow - 의사결정나무(Decision Tree)를 이용한 UCI 유방암(Breast Cancer) 데이터 분석 (0) | 2023.01.15 |
[KNIME] Workflow - 데이터셋에 특정 문자열로 컬럼을 추가하고 싶을 때 (1) | 2023.01.13 |