일반적인 빈 칸 전처리
Dataframe 중 한 Column 에 아무것도 없는 빈 칸과 숫자가 섞여있는 경우, 데이터 처리 방식이 조금 복잡해진다. Pandas 는 빈 칸을 default 로 NaN 으로 처리하는데 이걸 정말로 NaN 도 아닌 빈 값으로 두고 싶다면 fillna(’’) 이런 식으로 하면 된다.
0과 빈 칸을 구분하지 못하는 잘못된 전처리를 조심하자
문제는 그 컬럼에 0 과 빈 칸이 섞여 있을 때 df_row[col_name] == 0 인 경우를 조심해야 한다는 것이다.
특정 column 이 numeric 이라고 판단되면 그 column 안에서의 값이 아예 없더라도 그건 자동으로 0 으로 된다. 따라서 사용자가 육안으로 보기에 분명히 cell 안에 0이라는 integer 가 들어있고 빈 칸이 섞여 있고 우리 눈에는 그 둘이 확연히 다르게 보여도, python 이 받아들이기로는 둘이 똑같이 받아들여진다는 것이다.
해결은? Dataframe cell 값의 길이로 0과 빈 칸을 구별
그래서 이것을 피하기 위해서는 나는 모든 value 를 string 으로 변환 한 후, len(df_row[col_name]) == 0 여부를 체크한다. 이게 0 인 것이 우리가 인지하는 정말로 아무것도 없는 값인 것이다. 0이라는 값이 들어갔다면 그것은 ‘0’ 이라는 string 으로 간주되어 len(df_row[col_name]) == 1 이 될 것이다.
반응형
'데이터 사이언스' 카테고리의 다른 글
생성형AI 로 hyperparameter optimization code 만들어 공부하기 (6) | 2024.10.13 |
---|---|
Claude 를 참고하여 나만의 custom dataset 만들기 (6) | 2024.09.18 |
Claude 를 참고하여 신약개발경진대회 Baseline code 분석하기 (6) | 2024.09.17 |
AI를 이용한 신약개발 경진대회: IRAK4 IC50 활성값을 예측 (8) | 2024.09.16 |
딥러닝으로 하는 신약개발 (2) | 2024.09.14 |