상황: 특정 condition에서 보정을 위해 grouping & apply 적용

이슈: 재계산되지 않은 컬럼은 str, 재계산된 컬럼은 float인 상태에서 .str.replace 후 astype(float)으로 형변환하니 기존 float값이 모두 NaN이 됨(정확히는 기존 컬럼에서 %를 없애고 숫자로 convert하는 과정. 재계산하는 컬럼은 이미 계산을 위해 %가 없어진 상태.)

원인: accessor가 'str로 변환한 다음에 replace하고 형변환'처럼 보이지만, 실제로는 해당 시리즈가 str임을 전제하고 벡터작업을 함. 따라서 str이 아닌 값들은 type 정보를 잃어 버리게 되고 type 정보를 잃어버린 value들은 형변환 시 na값이 됨

 

결론: 시리즈 타입을 확신할 수 없다면 accessor 쓰기 전에 웬만하면 형변환을 명시적으로 해주도록 하자. 웬만하면 수집, 추출할 때 data source에서 type이 정렬되어 들어오긴 하지만, 그렇지 않은 data source도 있을 수 있다.

+ Recent posts