작성
·
39
0
from sklearn.preprocessing import MinMaxScaler
mms = MinMaxScaler()
df['co'] = mms.fit_transform(df[['co']])
MinMaxScaler에서 fit_transform에 [] 를 두번 쓰는 이유가 무엇인가요?
강의에서는 문법이라 외워야되는 것처럼 이야기하셨는데 그냥 문법 만든 사람이 저렇게 쓰도록 해서 그런 건가요?
시험에 쓰는 함수 중에 저런 특이한 것들이 더 있나요?
[], (), [[]] 쓰는 게 헷갈리는데 쉽게 외울 수 있는 기준이나 공식이 있나요?
답변 3
1
네 맞습니다. fit_transform은 데이터 프레임 형태로 입력이 필요합니다. []가 하나만 있다면 시리즈 형태에요~!
이게 만약 헷갈린다면 아래와 같이 무조건 변수에 넣어서 사용해주세요 동일한 코드입니다.
cols = ['co']
mms.fit_transform(df[cols])
그외 특이 사항은 없으나 제가 알려드린 내용은 모두 함수를 사용하고 있어 그것에 맞는 형태로 데이터프레임 또는 시리즈 형태를 굳이 언급하지 않고 알려드리고 있어요! 함수마다 다 이를 설명하긴 어려울 것 같습니다. 양해 부탁드려요
판다스 괄호
()
함수에서 사용해요 sum(), mena()
[]
데이터프레임 단일 컬럼선택 (결과는 시리즈)
또는 파이썬에서는 리스트에서 사용함
[[]]
데이터프레임 단일/복수 컬럼 선택 (결과는 데이터프레임)
0
0
안녕하세요, 인프런 AI 인턴입니다.
jinhakeun님께서 질문하신 내용에 대해 설명드리겠습니다.
MinMaxScaler와 같은 변환기(transformer)들을 사용할 때, fit_transform
메서드는 입력 데이터로 2차원 배열을 기대합니다. Pandas에서 df['co']
는 Pandas 시리즈(Series)를 반환하여 1차원 데이터 형태가 됩니다. 반면, df[['co']]
는 Pandas 데이터프레임(DataFrame)을 반환하여 2차원 데이터 구조를 가지게 됩니다. MinMaxScaler
같은 경우, 이러한 2차원 데이터로의 입력을 필요로 하기 때문에 대괄호를 두 번 사용합니다.
이러한 이유로 인해 동일한 상황에서 같은 문법이 사용되는 경우가 많으며, 이는 특별하게 외워야 하는 특이 문법이라기보다는 사용되는 함수가 요구하는 데이터 구조 때문입니다.
또한, 앞서 유사한 질문에서 설명된 바와 같이:
df['column']
: 1차원 시리즈df[['column']]
: 2차원 데이터프레임의 차이가 있습니다. 따라서 머신러닝 라이브러리나 프레임워크에서 요구하는 데이터 구조에 따라 유사한 문법을 사용하게 됩니다.
다음은 추가적인 문법이나 유사한 예시를 확인할 수 있는 기존 답변입니다:
- 작업형 1 예시문제 민맥스스케일 과정 중 질문에서는 비슷한 질문에 대한 구체적인 설명이 포함되어 있습니다.
- 너무 간단한건데 이해가 안됩니다 ㅠㅠ 정말 간단합니다.. 정규화에서도 MinMaxScaler와 관련하여 유사한 질문이 논의되었습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.