데이터 테이블 연결 - 가로 2(내부 조인)

테이블과 테이블의 연결은 세로 방향(행이 증가함)과 가로 방향(열이 증가함)일 수 있습니다.
세로 방향의 경우는 집합, 가로 방향의 경우는 결합이라고 합니다.

조인에는 다음과 같은 패턴이 있습니다.
완전 외부 조인 : 공통되지 않은 모든 레코드를 포함하여 열을 늘립니다.
오른쪽(왼쪽) 외부 조인: 오른쪽(왼쪽) 측 테이블의 공통되지 않은 레코드를 포함하여 열을 늘립니다.
내부 조인 : 공통 레코드를 대상으로 열을 늘립니다.

이번에는 내부 조인에 대해 SAS 프로그램과 SQL 및 Python (Pandas)을 각각 사용한 예를 소개합니다.

하고 싶은 조작은 아래와 같습니다.

A 열을 키로 사용하여 값이 일치하는 레코드만 검색하고 가로로 연결합니다.

① SAS 프로그램에서 내부 결합


data table_3;
  merge table_1 (in=flg1)
        table_2 (in=flg2);
  by A;
  if flg1=1 and flg2=1 then output;
run;

merge 문에서 옆으로 겹쳐서 by로 키되는 변수를 지정합니다.
in은 임시 변수를 지정하는 옵션입니다.
예를 들어, table_1 (in = flg1)은 임시 변수 이름을 flg1로 설정하고,
table_1 유래의 레코드에서는 flg1=1
・그 이외에서는 flg1=0
됩니다.
또한 임시 변수로 지정한 flg1 및 flg2는 출력 테이블에 출력되지 않습니다.

예를 들어, 다음 프로그램에서는
data table_4;
  merge table_1 (in=flg1)
        table_2 (in=flg2);
  by A;
 val1=flg1;
 val2=flg2;
run;

출력은 아래 table_4입니다. 일시 변수의 값을 강제적으로 표시시키기 위해, val1, val2 로 각각 값을 인계시키고 있습니다.
val1이 table_1에 기인하고, val2가 table_2에 기인하는 것을 알 수 있다고 생각합니다.


다시 다음 프로그램으로 돌아가면,
data table_3;
  merge table_1 (in=flg1)
        table_2 (in=flg2);
  by A;
  if flg1=1 and flg2=1 then output;
run;

flg1 = 1 및 flg2 = 1 then output; .


② SQL에서의 내부 조인


 create table table_3 as
 select table_1.A, table_1.B, table_2.C
 from table_1 inner join table_2 on table_1.A = table_2.A;

SELECT 검색 변수 이름 from 데이터 세트 1 inner join 데이터 세트 2 on 조인 조건
(inner는 생략해도 OK)
조인하려는 테이블을 inner join으로 연결하고 on 이하에서 어떤 열을 기준으로 데이터를 일치시킬지 지정합니다.

또한 inner join ~ on 을 사용하지 않고 where 절을 사용하여 다음과 같이 작성할 수도 있습니다.
 create table table_3 as
 select table_1.A, table_1.B, table_2.C 
 from table_1, table_2 where table_1.A = table_2.A;

③ Python (Pandas)에서의 완전 외부 결합


import pandas as pd
table_1 = pd.DataFrame({'A': [1, 2], 'B': ['AA', 'BB']})
table_2 = pd.DataFrame({'A': [2, 3], 'C': [10, 20]})
table_3 = pd.merge(table_1, table_2, on = "A", how="inner")

.merge 로 조인, on 에 키열을 지정, how 로 양식(내부이므로 "inner")을 지정합니다.

출력 결과

덧붙여서 how 의 양식 지정에서는, "outer"가 완전 외부 결합, "left"("right") 가 좌 (우) 외부 결합이 됩니다.

관련 기사



데이터 테이블의 연결 - 세로 방향 1(다른 열명을 그대로 남기는 경우)
데이터 테이블 연결 - 세로 방향 2(다른 열 이름을 통합하는 경우)
데이터 테이블의 연결-세로 방향 3(적 집합과 차 집합)
데이터 테이블 연결 - 가로 1(완전 외부 조인)
데이터 테이블 연결 - 가로 방향 3(좌우 외부 결합)
데이터 테이블 연결 - 교차 조인

좋은 웹페이지 즐겨찾기