인프런 커뮤니티 질문&답변

narae.park325님의 프로필 이미지

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

원핫인코딩 관련

해결된 질문

23.11.27 15:48 작성

·

141

0

원핫인코딩 관련하여 질문이 있습니다.

  1. cols = [ object형 컬럼들, , , ] 으로 지정한 후 어떤 문제에서는

pd.get_dummies(df[cols]) 로 되어있는 곳도 있고,

pd.get_dummies(df, columns=cols)로 되어있는 곳도 있는데, 둘다 마찬가지 결과가 나오는걸까요?

 

  1. 추가적으로, 다중분류 부분에서 보면 숫자로되어 있는 object형 변수는 자동으로 원핫인코딩이 되지 않으므로

pd.get_dummies(df[0])으로 코딩해야 한다고 하셨는데요,

그렇다면 위의 예시에서 df, columns=cols로 했을 경우에는 숫자로 되어있는 변수는 dtype이 object형이어도 자동으로 원핫인코딩이 되지않는걸까요..?

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

2023. 11. 27. 22:36

pd.get_dummies(df[cols]) 과 pd.get_dummies(df, columns=cols)는 차이가 있어요

  1. pd.get_dummies(df[cols]):

    • 이 방식은 먼저 df[cols]를 통해 데이터프레임 df에서 cols에 해당하는 열만 선택합니다.

    • 그런 다음 pd.get_dummies를 이용해 이 선택된 부분집합에 대해 원-핫 인코딩을 수행합니다.

    • 결과적으로, 원-핫 인코딩된 데이터프레임은 cols에 지정된 열만 포함하며, df의 다른 열은 포함되지 않습니다.

    • 숫자가 있다면 숫자가 있는 컬럼은 인코딩 하지 않습니다.

  2. pd.get_dummies(df, columns=cols):

    • 이 방식은 원본 데이터프레임 df를 기반으로 합니다.

    • columns=cols 매개변수를 통해 cols에 지정된 열만 원-핫 인코딩을 적용합니다.

    • 결과적으로, 원-핫 인코딩된 열은 cols에 지정된 범주형 열로 대체되지만, df의 다른 열(원-핫 인코딩되지 않은 열)도 결과 데이터프레임에 포함됩니다.

    • 숫자가 있는 컬럼이 있어도 강제로 원핫인코딩 합니다.

 

 

두번째 질문은 조금 이상합니다. 다시 질문 부탁드려요

pd.get_dummies(df[0]) 코드를 제가 설명한 적이 있을까요? df[0]는 저도 알 수 없는 코드라서요~😱

 

 

columns=cols로 했을 경우에는 숫자로 되어있는 변수는 dtype이 object형이어도 자동으로 원핫인코딩이 되지않는걸까요..?

아니요! 겟더미즈에 넣으면 object형은 원핫인코딩 됩니다. 🙂

narae.park325님의 프로필 이미지
narae.park325
질문자

2023. 11. 28. 15:13

답변 감사드립니다!!

말씀주신 부분은 다중분류 평가지표 부분에서 pd.get_dummies(y_true[0])이라고 되어있는 부분이었습니다.

y_true는 [2, 2, 3, 3, 2, 1,....] 이런 리스트였구요. 숫자면 자동으로 원핫인코딩 되지않아서 [0]을 넣었다고 하셨던것같아서 여쭤봤습니다. 위의 df[cols]와 관련이 있나 했어요^^;;