2020. 12. 10. 05:54ㆍStudy/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( )