- R의 join과 유사
- 세 객체 이상의 조인 불가
- non-equi join 불가
pd.merge(left, # 첫 번째 join 대상(dataframe, series)
right, # 두 번째 join 대상(dataframe, series)
how = inner, # join 방법(inner, left, right, outer(full outer join), cross)
on, # join key (양쪽에 같은 이름으로 있을 경우)
left_on, # 첫 번째 대상의 join key(양쪽에 같은 이름으로 있지 않을 경우)
right_on, # 두 번째 대상의 join key(양쪽에 같은 이름으로 있지 않을 경우)
left_index = False, # 첫 번째 대상의 join key로 index 값을 사용할지 여부
right_index = False, # 두 번째 대상의 join key로 index 값을 사용할지 여부
sort = False, # key 정렬 여부
suffixes) # 같은 이름의 컬럼일 경우 구분자
예) emp.csv, dept.csv 파일을 불러온 뒤 각 직원의 이름, 급여, 부서명을 출력하시오.
위에서 on = 'DEPTNO'는 생략이 가능하다.
emp와 dept 에서 DEPTNO는 이름이 같은 컬럼이며 하나씩 존재하기 때문이다.
예) student.csv, exam_01.csv 파일을 읽고 각 학생의 이름, 학년, 성적을 출력하여라.
예) student.csv, professor.csv 파일을 읽고 각 학생의 이름, 학년, 지도교수이름을 출력하여라.
위처럼 std, pro만 넣게 되면, 빈 프레임이 출력된다.
이렇게 되는 이유는 std와 pro 각각 NAME, PROFNO, ID 의 두 값이 같은 행이 출력되도록 한 것인데, NAME은 학생 이름과 교수 이름으로 각각 다르며, ID도 마찬가지이다. 우리가 join 하고자 하는 것은 PROFNO 이므로 이 내용을 다시 코드로 잘 전달하여보자.
on 옵션을 사용하여 PROFNO 를 전달하여 출력했다.
위 결과는 inner join으로 교수가 배정되지 않은 학생은 출력이 되지 않는다.
이번엔 교수가 배정되지 않은 학생도 출력되도록 outer join을 수행하여 보겠다.
how = 'left' 로 전달하면 left outer join이 수행된다.
'배우기 > 복습노트[Python과 분석]' 카테고리의 다른 글
[복습] Python 파이썬에서의 join (index join, outer join)(2) (0) | 2024.01.24 |
---|---|
[실습문제] 2024. 1. 18.(목) (1문제) (0) | 2024.01.24 |
[복습] Python DBMS 연동 (1) | 2024.01.22 |
[복습] Python 파이썬에서의 groupby 연산 (0) | 2024.01.19 |
[복습] Python wide data에서의 최대/최소 index값 추출(idxmax(), idxmin()) (0) | 2024.01.18 |