STUDY_SEONMIN

DAY10 - 데이터프레임 관련 함수(merge, rename, fillna ) 본문

EDUCATION/DSS Online 6기

DAY10 - 데이터프레임 관련 함수(merge, rename, fillna )

Kululu_ 2021. 1. 23. 14:02

merge

- 데이터프레임을 합칠 때 사용하는 함수.

- 데이터 프레임을 합칠 때 기준이 되는 컬럼을 지정해서, 해당 컬럼의 값이 같은 데이터끼리 붙여줍니다.

- 두 데이터프레임의 데이터들을 1:1 매칭시켜서 쭉 나열시킨 후 기준에 맞는 데이터만 걸러서 보여주는 방식.

- 붙이는 방식

    - inner : 기준 컬럼의 값이 양쪽의 데이터프레임에 모두 있는 데이터만 합쳐서 보여줌.

    - outer : 기준 컬럼의 값이 양쪽 모두에 있는 데이터들  + 한 쪽에만 있는 데이터까지 보여줌.

               한 쪽에만 있는 경우 다른 데이터프레임의 변수들의 값을 가지지 못하기 때문에 결측치가 됌.

두 개의 데이터 프레임.

user_df에 money_df를 ID 또는 UserID 컬럼을 기준으로 합쳐보겠습니다.

merge함수를 이용해 데이터프레임을 합치면 다음 순서와 같이 진행됩니다.

 

*inner 방식 

1) 먼저 데이터들을 매칭 시켜 가능한 모든 조합을 나열합니다.(15 x 8 = 90 가지 경우)

2) 그 중 ID 컬럼의 값과 UserID 컬럼의 값이 일치하는 데이터들만 남깁니다.

이와 같이 UserID 컬럼의 값과 ID 컬럼의 값이 일치하는 데이터들이 나옵니다.

 

 

*outer방식

1) 먼저 데이터들을 매칭 시켜 가능한 모든 조합을 나열합니다.(15 x 8 = 90 가지 경우)

2) 그 중 ID 컬럼의 값과 UserID 컬럼의 값이 일치하는 데이터들만 먼저 남깁니다.

3) 합치기 전 money_df의 데이터 또는 user_df의 데이터 중에서 2)에 해당하지 않는 데이터들을 추가해줍니다.

4) 이 때 money_df의 데이터가 추가된다면 user_df의 컬럼인 UserID, Name, Age에는 결측값을 포함한 채로 추가됩니다.

5) user_df의 데이터가 추가된다면 money_df의 컬럼인 ID, Money에는 결측값을 포함한 채로 추가됩니다.

이와 같이 한 쪽의 데이터프레임에만 있는 데이터는 다른 데이터프레임의 컬럼값들이 결측치로 추가됩니다.

 

 

rename

- index 또는 column 명을 변경시켜주는 함수

user_df는 UseID, Name, Age 라는 컬럼명을 갖고 있다.
rename 함수를 사용해 원하는 컬럼의 이름을 변경할 수 있다. *inplace=False로 실행하면 바뀐 결과만 출력되고 user_df 자체가 바뀌지는 않는다. 

 

 

fillna

- 결측값(NaN)들을 특정값으로 채워주는 함수.

- 결측값을 채울 때는 보통 해당 변수의 평균값을 이용한다.

- 결측값을 처리할 때 아예 해당 데이터를 삭제하는 경우도 있긴합니다. = > dropna() 함수 사용.

첫 번째 데이터의 ID와 Money가 결측값입니다.

ID는 1로 Money는 전체 Money의 평균값으로 채워보겠습니다.

'EDUCATION > DSS Online 6기' 카테고리의 다른 글

DAY10 - 선형회귀모델, pickle  (0) 2021.01.23
DAY10 - Pandas Pivot  (0) 2021.01.23
DAY9 - DataFrame  (0) 2021.01.21
DAY9 - pandas, Series  (0) 2021.01.21
DAY8 - numpy.unique, numpy.concatenate  (0) 2021.01.19
Comments