조원들의 EDA파일들을 모아서 취합해 한 EDA파일로 만들고있다.

근데 각자 df쓰는것도 다르고 셀도 꽤 오래걸려서 생각보다 까다롭다.

처음에는 기승전결 확실한 EDA모음집으로 만들고 싶었는데 쉽지않은 것같다.

np.select

저번에 다른 조 피드백을 보다가 pd.cut -> np.select가 더 성능이 낫다는 피드백을 보았다. 그래서 공부해보고 이번에 EDA모음집을 활용할 기회가 생겼다. 다른 조원의 코드에서 pd.cut이 보여서 np.select로 바꾸려고 했는데

## 원래 pd.cut 코드
data['floor_cat'] = pd.cut(data['floor'], [-5,10,20,30,40,50,60,70])
data['area_m2_cat'] = pd.cut(data['area_m2'], [0,50,100,150,200,250,300,350])

이걸 바꾸니까

# np.select로 변환한 코드
floor_conditions = [
    (data['floor'] <= 10),
    (data['floor'] > 10) & (data['floor'] <= 20),
    (data['floor'] > 20) & (data['floor'] <= 30),
    (data['floor'] > 30) & (data['floor'] <= 40),
    (data['floor'] > 40) & (data['floor'] <= 50),
    (data['floor'] > 50) & (data['floor'] <= 60),
    (data['floor'] > 60) & (data['floor'] <= 70)
]
floor_choices = ['(-5, 10]', '(10, 20]', '(20, 30]', '(30, 40]', '(40, 50]', '(50, 60]', '(60, 70]']
data['floor_cat'] = np.select(floor_conditions, floor_choices, default=np.nan)

# area_m2_cat 변환
area_conditions = [
    (data['area_m2'] <= 50),
    (data['area_m2'] > 50) & (data['area_m2'] <= 100),
    (data['area_m2'] > 100) & (data['area_m2'] <= 150),
    (data['area_m2'] > 150) & (data['area_m2'] <= 200),
    (data['area_m2'] > 200) & (data['area_m2'] <= 250),
    (data['area_m2'] > 250) & (data['area_m2'] <= 300),
    (data['area_m2'] > 300) & (data['area_m2'] <= 350)
]
area_choices = ['(0, 50]', '(50, 100]', '(100, 150]', '(150, 200]', '(200, 250]', '(250, 300]', '(300, 350]']
data['area_m2_cat'] = np.select(area_conditions, area_choices, default=np.nan)

이게 맞나? 그리고 어차피 0.1초만에 실행되는데 이걸 굳이 성능을 향상해야 하나? 라는 생각이 들었다.

나중에 더 데이터셋의 크기가 커지거나 실행시간이 중요한 임베디드적(물론 실행시간이 중요하면 파이썬이 안쓰이겠지만),

뭐 그럴때 상황에 맞게 사용하는게 더 중요할 것 같다.

내일 할거

ai

knn모델 구축, 우선 베이스라인 데이터로하고 잘되면 정리해서 하기

학교가서 ai 책보기

개발

한달 내 할거

블로그 수정

  • github, linkedin 등등 추가
  • 댓글 기능 추가
  • 귀찮은데 새벽 2시쯤에 걍 블로그 자동 깃헙 푸시되게 해놓을까? 근데 하루 끝나고 직접하는 쾌감도 잇긴한데..

java 코테 준비