상황: 특정 condition에서 보정을 위해 grouping 후 특정 컬럼의 값을 재계산
이슈: 재계산되지 않은 컬럼은 str, 재계산된 컬럼은 float인 상태에서 .str.replace 후 astype(float)으로 형변환하니 기존 float값이 모두 NaN이 됨
원인: 직관적으로는 'str로 변환한 다음에 replace하고 형변환'이지만, 실제로 accessor는 해당 시리즈가 str임을 전제함. 따라서 str이 아닌 값들은 type 정보를 잃어 버리게 되고 type 정보를 잃어버린 value들은 형변환 시 na값이 됨
결론: 시리즈 타입을 확신할 수 없다면 accessor 쓰기 전에 웬만하면 형변환을 명시적으로 해주도록 하자. 웬만하면 수집, 추출할 때 data source에서 type이 정렬되어 들어오긴 하지만, 그렇지 않은 data source도 있을 수 있다.
'파이썬' 카테고리의 다른 글
collection 간의 비교가 필요할 때 패턴 (0) | 2025.05.08 |
---|---|
날짜 비교 시 자주 하는 간단한 실수 (0) | 2025.03.24 |
[pandas] 결측 column 채우기 (0) | 2024.07.29 |
None, NaN, NaT 판단 시 주의점 (0) | 2024.04.29 |
[pandas] series type이 안정적으로 잡히지 않는 케이스 (0) | 2024.04.26 |