Pandas : merge, groupby (EDA 를 위한 메서드)

2020. 12. 10. 05:54Study/Programming

Pandas

 

1. merge

 

1) 조인 작업의 분류 (일대일, 다대일, 다대다)

      • 일대일 조인 : 공통된 열을 가지고 있다는 것을 알고 자동으로 열을 키로 사용해 조인한다. 새로운 DataFrame 반환
      • 다대일 조인 (중복있을때) : 중복을 보존하고 연장
      • 다대다 조인 : 양쪽에 모두 중복이 존재할 , 공통 컬럼 기준, 많은 것을 기준으로 연장됨.

 

2) 병합 지정

      • on 키워드 : 명시적으로 합칠 기준 키를 지정 (공통된 column 있을 경우)
      • left_on & right_on 키워드 : 이름이 다른 경우(내용은 같은 맥락이지만) 왼쪽 df 키워드 기준 키는 이것이다, 오른쪽 df 키워드 기준 키는 이것이다. 하고 지정해주는 . 그러나 중복이 생기게 .
      • left_index & right_index : 인덱스를 기준으로 합칠경우에 사용 ( True or False)

 

      • df1.join(df2) : join 메서드 : 인덱스 기반으로 병합을 수행
      • pd.merge(df1, df2, left_index=True, right_on='name') 같이 용도에 따라 섞어서 사용가능

 

 

3) 조인을 위한 집합 연산 지정하기

 

어떤 열에 등장하는 값이 다른 열에서는 등장하지 않는 경우

how 키워드 : how = 'inner', 'outer', 'left', 'right'

왼쪽 오른쪽 df 에서 df 지정해주는

 

4) 열 이름이 겹치는 경우 : suffixes 키워드

 

이름이 겹치면 rank_x, rank_y 등으로 늘어나게 된다.

접미사 키워드를 통해, x, y 해당하는 단어를 변경할 있다.

like this, suffixes = [ "_L", "_R" ]

 

 


 

2. GroupBy : 분할, 적용, 결합

 

조건부 집계

 

분할, 적용, 결합

df.groupby('key') : 키를 기준으로

DataFrameGroupBy 체가 반환됨.

 

GroupBy

인덱싱 : GroupBy 반환 : 집계 연산 호출 df 반환됨

 

집계, 필터, 변환, 적용

aggregate( ) , filter( ) , transform( ), apply( ) 메서드

 

1) 집계 aggregate( )

다양한 메서드를 번에 전달 가능 ( 열마다 다르게도 가능)

df . groupby( 'key' ) . aggregate ( [ 'min', np.median, max ] )

df . groupby( 'key' ) . aggregate ( { 'data1' : 'min' , 'data2' : 'max'  } )

 

2) 필터링 filter( )

3) 변환 transform( )

4) 적용 apply( )