inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 데이터 사이언스 Part2. 데이터 전처리

스케일링

6:14초 dataframe 스케일링한 후 컬럼 추가에 대한 질문

741

피카라이언

작성한 질문수 7

0

안녕하세요.

주피터노트북으로 따라하던 도중 에러가 났는데 어떻게 고칠줄 몰라 여쭈어봅니다.

37줄을 프린트하면 Key error가 납니다.

# 키, 몸무게 데이터를 각각 표준 스케일링한 후 컬럼에 추가

df = df_raw.copy() # 백업 데이터 사용 (결측치 없는)

df[:10]

from sklearn.preprocessing import StandardScaler

scale = StandardScaler() #make constructor - 하나의 객체를 만들었다. 

df["h_sc","w_sc"] = scale.fit_transform(df["height","weight"])

df[:5]

KeyError: "None of [Index(['h_sc', 'w_sc'], dtype='object')] are in the [columns]" 

이런 에러가 뜨는데 해결방법을 알 수 있을까여??

dataframe python 데이터전처리

답변 1

0

김화종

안녕하세요. 위의 코드는 정상으로 동작해야 하나 간혹 파이썬 버전에 따라 오류가 나기도 합니다.

코드의 동작을 설명드리면, 아래의 부분은 (1000, 2) 크기의 어레이(ndarray)를 얻습니다 (스케일링 결과치).

scale.fit_transform(df["height","weight"])

아래 코드는 df에 ['h_sc','w_sc'] 라는 이름의 컬럼을 두개 새로 만들면서 위에서 얻은 (1000,2) 어레이로 내용을 채우라는 뜻입니다.

df[['h_sc','w_sc']]= ...

현재 발생하는 오류 메시지는 ['h_sc','w_sc'] 라는 컬럼명이 미리 존재하지 않았다는 것입니다.

원래 새로운 이름의 컬럼이 두개 추가가 되어야 하나, 한번에 한 컬럼만 추가되는 경우도 있습니다.

아래와 같이 한번에 한 컬럼씩 스케일링해 보세요.

df[['h_sc']]=scale.fit_transform(df[['height']])

df[['w_sc']]=scale.fit_transform(df[['weight']])

동작하지 않으면 다시 질문 바랍니다.

0

피카라이언

안녕하세요 선생님.

df[['h_sc']]=scale.fit_transform(df[['height']])

df[['w_sc']]=scale.fit_transform(df[['weight']])

이렇게 할 때도 값이 다 안들어가거나 key error뜨더군요... 어떤 방식으로 동작한지는 알았습니다.

그래서 저는 

df["h_sc"] = [1]*df.shape[0]

df["w_sc"] = [1]*df.shape[0]

 

df[["h_sc","w_sc"]] = scale.fit_transform(df[["height","weight"]])

df[:5]

이렇게해서 그냥 무작위 값 집어넣고 그위로 height and weight transform값한것을 넣었는데 작동은 된다만 이론상 맞을까요??

0

김화종

위처럼 해도 됩니다. 내용을 다 이해하셨네요~ 혹시 아래와 같이 인덱스를 리스트로 주지 말고 한 변수씩 주어 보세요 ([...] 가 빠짐).

df['h_sc']=scale.fit_transform(df['height'])

df['w_sc']=scale.fit_transform(df['weight'])

멍슨상이라 이름 변경하시는 게 어떠신지요?

1

12

0

수업 노트가 안 보입니다.

0

14

1

Python formatter 설치

0

11

1

55강 파이썬에만있는 연산자들

0

10

1

55강의 파이썬에서만 있는 연산자들

0

9

1

주말에 실행할 경우 update_economic_data_in_background에 로직 변경 필요성

1

17

1

naver 글자 수집 오류 건

0

14

1

쥬피터 노트북이 실행이 안됩니다.

0

17

1

뒤로가기 버튼 같은 것이 있나요?

0

21

1

Replit 강의 자료가 안나와요

0

16

1

강의 연장 문의

0

18

1

프로그램 실행시간에 대한 질문

1

20

2

비중 및 매수 종목수 조정.

1

22

2

Claude api가 소식 동기화가 늦는 문제

1

35

2

[긴급요청2] 28강 동영상 오류(27강 음성 재생) 수정 예정일자를 알려주세요

0

22

1

codex에게 대용량 코드베이스를 인식 시키는 방법은 어떤게 있나요?

0

29

1

결측값 처리

0

576

1

n_step 값에 대하여

0

453

1

dir*.csv가 안됩니다.

0

329

1

6 시그마 이상 outlier

0

558

1

로그변환에 대하여

0

646

1

In[42] 14:50 코드 질문

0

249

1

Titanic 데이터셋 PClass cateogrical -> one hot encoding

0

385

1

표준 스케일링관련 문의

0

320

1