AngelPlayer`s Diary

외부의 데이터를 받아와서 사용하다보면 데이터에 문제가 있는 경우가 종종 발생합니다.

 

저는 kospi와 dow 종가 데이터를 가져왔는데 현재 서로 데이터의 크기가 다른 상황(데이터 누락)이고, 두 데이터를 비교하기 위해서 row 개수를 맞출 필요가 있기에 하나의 DataFrame(이후 df 표기) 형태로 만들었습니다.

 

 

 

하나의 df를 출력해보면 데이터가 누락된 날짜에 NaN표기가 되어 있는 것을 알 수 있습니다.

 

 

 

누락된 데이터(NaN)을 채우기 위해서는 .fillna()를 이용합니다.

 

.fillna() 사용법

- 데이터프레임.fillna(method='ffill') : 평균으로 채움

- 데이터프레임.fillna(method='ffill') : 바로 앞 데이터로 채움 

- 데이터프레임.fillna(method='bfill') : 바로 뒤 데이터로 채움

- 데이터프레임.fillna(특정_값) : 특정 값으로 채움

 

2000년 1월 3일의 kospi 데이터가 누락되어 있었지만, bfill을 이용하여 1월 4일의 데이터를 그대로 가져와 NaN 값을 덮어 썼습니다.

 

 

 

한편 dow의 2021년도 8월 24일 데이터는 여전히 NaN값이 유지되어 있습니다.

 

bfill을 통해 NaN 값을 가지는 행을 아래의 데이터를 이용하여 채울 수 있지만, 가장 아래 행에 위치한 데이터의 경우 아래에 아무 데이터가 없기 때문에 여전히 NaN 값을 가집니다. 

 

따라서 ffill을 이용하여 반대로 마지막 행의 데이터를 채울 필요가 있습니다.

 

데이터를 채우고 다시 한 번 확인 해보면 마지막 행도 데이터가 정상적으로 덮어쓰기가 된 것을 확인할 수 있습니다.

 

 

 

-> 위 또는 아래의 데이터로 NaN을 채우기 위해서는 ffill과 bfill 두 가지를 모두 수행할 필요가 있으며, 수행 순서에 따라 결과 값에 차이가 발생할 수 있습니다.

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band