TobeSteady

[DATA] Pivot 본문

Languages/SQL

[DATA] Pivot

NKUT 2023. 12. 14. 18:30

뭔가 헷갈리는 개념인 피벗.

위키피디아에서 확인하면 "선형대수학에서 비벗(pivot) 또는 피벗 성분(pivot entry,pivot element)는 특정 계산을 수행하기 위한 임의의 알고리즘에 의해 먼저 선택된 행렬의 성분(항,원소)이다"라고 찾아지는데 좀 더 찾아보자

 

(( 수학을 하나도 모르는 사람이 피벗 개념이 이해가 안되서 찾아보면서 정리한 것이므로 100%로 믿고 보지는 말아주세요 ;; 혹시 "이 친구 이상하게 이해하고 있군"이라고 생각되시면 댓글 환영입니다 )))

 


 

위의 개념에서 임의의 알고리즘이란, 가우스 소거법, 단순 알고리즘 등이라고 하는데 수학적으로 개념이라서 무섭지만 조금만 더 찾아보자.

((20대 후반이되면, 뇌가 새로운 지식을 바로 이해 못 한다고 한다...그냥 많이 보는 법 밖에 없음, 언젠가는 이해하겠즤)))

 

가우스 소거법

- 선형대수학에서 가우스소거법이란, 연립일차방정식을 풀이하는 알고리즘.

- 보통 행렬을 사용하며, m x n 행렬 M을 기본행연산을 가하여 행사다리꼴 행렬로 만드는 알고리즘(..?)

ㄴㅔ...? 행사다리꼴???

 

...아래의 멋진 유튜브 선생님 찾았다.!

행사다리꼴이 무엇인지, 가우스 소거법이 어떤 건지 8분만 투자해서 이해 할 수 있다.

((글로 설명하면 잘못된 지식 전달 될 것 같음. 미래의 나 8분만 투자해봐))))

https://youtu.be/RgpjVOFzpdk?si=3Csc4vIu1YHoCTgp

 

 

피벗이란?

해당 영상을 열심히 봤다면, 아래의 블로그로 "피벗"의 개념을 좀 더 확인해보자!

https://m.blog.naver.com/ok1659/223020923835

- 한 행에서 일차방정식의 첫번째 미지수 앞의 계수 또는 기본행연산을 적용하여 행사다리꼴(REF)로 변형했을 때 대각성분을 피벗(Pivot)이라고 한다.

 

[ 단 다음의 주의 상황에 주목한다. ]

1. 피벗계수를 바꿔 미지수를 제거할 방적식미지수의 계수이다.

2. 한 미지수에 대한 피벗은 1개이다. 즉 n개의 미지수를 포함한 연립방적식에서 피벗의 최대 개수는 n개이다.

3. 0은 피벗을 취급하지 않는다. 피벗은 0이 될 수 없다.

 

 

[ pivot을 구하기 위한 소거 방법 ]

- 이 과정을 소거(Elimination), 방법을 소거법(Elimination method)라고 한다.

1. 미지수를 소거할 방정식(pivot을 찾을 방정식)을 고른다.

2. 그 방정식의 소거할 미지수의 계수를 바로 위 방정식의 pivot으로 나눈다. 이 값을 승수(multiplier)라고 한다.

3. 위 방정식 양변에 "-승수"를 곱하고 두 방정식을 더하여 대체한다. 그 때 소거된 방적식의 첫 미지수 계수가 구한 pivot이다.

 


 

여기까지 개념을 훌훌훌 둘러보고, 피벗(Pivotiong)을 이용한 통계 테이블을 확인하면

우리가 가지고 있는 데이터들이 pivot을 이용해서 통계 테이블로 생성되는지 직감적으로 이해 될 것이다.

 

[ ChatGPT가 말아주는 피벗 테이블 개념과 설명 ]

  1. 원본 데이터 (Raw Data): 피벗 테이블의 기초가 되는 것은 원본 데이터입니다. 이는 일반적으로 표 형태로 정리된 데이터로, 여러 행과 열이 있습니다. 각 행은 하나의 레코드(데이터 항목)를 나타내고, 각 열은 특정 변수 또는 속성을 나타냅니다.
  2. 피벗 (Pivot): "피벗"이란 회전하는 축을 의미하며, 피벗 테이블이라는 용어는 이러한 회전 개념에서 나왔습니다. 피벗 테이블은 데이터를 회전하여 다양한 각도에서 분석할 수 있게 해줍니다.
  3. 행과 열의 변경 (Pivoting Rows and Columns): 피벗 테이블은 원본 데이터의 행과 열을 바꾸는 과정을 포함합니다. 예를 들어, 특정 열의 값을 행으로, 다른 열의 값을 열로 옮길 수 있습니다. 이를 통해 데이터의 구조를 변경하고 새로운 형태로 정리할 수 있습니다.
  4. 값의 집계 (Aggregation of Values): 피벗 테이블은 주로 값들을 집계하고 요약하는 데 사용됩니다. 예를 들어, 원본 데이터의 수백 개의 행에서 특정 열의 합계, 평균, 개수 등을 계산하여 새로운 표로 나타낼 수 있습니다.
    • 위의 소거법의 개념을 대응시키면, 값의 집계가 결국 소거된 방적식의 첫 미지수 계수가 구한 pivot..!

 

[ 예시1 ]

 

피벗 테이블이 어떻게 만들어지는지 간단한 예제를 통해 설명하겠습니다. 아래와 같은 원본 데이터가 있다고 가정해봅시다.

날짜 제품 판매량
2023-01-01 제품A 100
2023-01-01 제품B 150
2023-01-02 제품A 120
2023-01-02 제품B 180

 

이 데이터를 피벗 테이블로 변환하면 다음과 같을 수 있습니다.

날짜 제품A 제품B
2023-01-01 100 150
2023-01-02 120 180

이렇게 변환된 피벗 테이블에서는 각 날짜에 대한 제품A와 제품B의 판매량이 행렬 형태로 요약되어 보여집니다.

이를 통해 사용자는 날짜 및 제품에 따른 판매 동향을 빠르게 파악할 수 있습니다.

 

 

[ 예시2 ]

출처 : 프로그래머스 SQL/DB 기초 강의 중