포스팅 목적
pandas 라이브러리의 merge함수 사용법을 공부해보자
merge함수
두 데이터프레임을 병합하는 함수.
두개의 함수가 있다는걸 유의해야 한다.
pandas.DataFrame.merge()가 있고,
pandas.merge()가 있다.
전자의 경우 인자로 병합대상이 되는 데이터프레임을 1개 넣어주지만
후자 pandas.merge()의 경우 병합대상 데이터프레임을 2개 써주어야한다.
함수원형
pd.merge(df_left, df_right, on=None, how="inner")
파라미터 how는 어떤 병합방식을 택할것인지를 넣어준다.
기본적으로 SQL의 inner join 방식이 사용된다.
파라미터 on은 어떤 칼럼을 기준으로 merge할 것인지를 써준다.
만약 df_left와 df_right의 각각 다른 이름을 가진 열을 병합하려면
left_on과 right_on 인자를 사용한다.
조인방법
inner join: 따로 설정 안하면 디폴트로 inner join을 수행한다.
교집합으로 이해하면 쉽다.
양쪽 데이터프레임이 모두 가지고있는 칼럼만 병합해서 보여준다.
outer join: 합집합으로 이해하자.
양쪽 데이터프레임에서 서로 없는 칼럼이 있어도 NaN값으로 채우며 병합한다.
예제코드
이해를 돕기위해 아주 간단한 코드를 작성했다!
데이터프레임 df_a와 df_b를 만들었고 country 칼럼에서 '한국'만 겹친다.
df_a = pd.DataFrame(['한국','가나','미국'],columns=['country'])
df_b = pd.DataFrame(['중국','일본','홍콩','한국'],columns=['country'])
df_a['population']=[5000,2000,3000]
df_a['code'] = 1,2,3
df_b['area'] = [32,10,5,50]
df_b['code'] = 4,5,6,1
df_ab_inner = pd.merge(df_a, df_b)
df_ab_outer = pd.merge(df_a, df_b, how='outer')
print(df_a)
print(df_b)
print(df_ab_inner)
print(df_ab_outer)
맨 마지막 print값 4개는 아래와 같은 모습이다.
끝내며
다른 조인방식도 있는데 일단 이것만 정리하고 넘어가자..
'PL > Python' 카테고리의 다른 글
pandas.DataFrame.apply 함수 기본 사용법 (0) | 2022.10.27 |
---|---|
pandas.DataFrame.groupby 기본 사용법 (0) | 2022.10.27 |
numpy.r_ 연산자 사용법 (0) | 2022.10.21 |
피쳐 중요도 feature_importances_ (0) | 2022.10.18 |
[seaborn] barplot 기초 (0) | 2022.10.18 |
댓글