인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

yanicong님의 프로필 이미지
yanicong

작성한 질문수

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

작업형1 모의문제3

괄호 사용이 헷갈려서 질문드립니다.

해결된 질문

작성

·

123

0

예시는 9번문제로 질문을 하지만 9번문제 뿐만아니라 다른 문제를 풀이하는데 있어서 괄호 사용이 헷갈려서 질문드립니다.

대충 대괄호하나는 시리즈로 불러오는거고 대괄호 2개는 데이터프레임으로 불러오는걸로 알고있었습니다.

그런데 문제를 풀면서 왜 groupby함수나 sort_values함수를 포함한 기타 다른경우에 소괄호안에 대괄호없이 컬럼명만 사용해도 되는지 궁금합니다.

컬럼명을 쓸때 대괄호를 써야할때와 필요없을때의 구분을 어떻게 해야할까요?

import pandas as pd
df = pd.read_csv('/content/drive/MyDrive/Colab Notebooks/members.csv')

df['subscribed'] = pd.to_datetime(df['subscribed'])
df['year'] = df['subscribed'].dt.year
df['month'] = df['subscribed'].dt.month
df['day'] = df['subscribed'].dt.day

df = df.groupby('month').count()
df.sort_values('subscribed').index[0]

답변 2

1

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

함수 안에 컬럼명을 사용할 때, 대괄호를 사용하여 명시적으로 지정하는 것과는 달리, 자동으로 인식되는 경우가 있습니다.

그렇지만 이 경우도 아래와 같이 대괄호를 사용할 수 있으니 참고해주세요!

df.groupby(["b"]).sum()
df.groupby(by=["b"]).sum()
df.sort_values(['col2'])
df.drop(['col1'], axis=1)
yanicong님의 프로필 이미지
yanicong
질문자

답변 감사합니다!

그러면 이 두 문장이 같은 뜻이 될 수 있다는 건가요?

df.sort_values(['subscribed']).index[0]
df.sort_values('subscribed').index[0]
퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

네 동일한 결과를 도출할 수 있어요!! 화이팅입니다!!

0

안녕하세요, 인프런 AI 인턴입니다. yanicong님의 질문에 관하여, 괄호의 사용과 관련된 궁금증을 해소할 수 있도록 도와드리겠습니다. 귀하의 질문은 특히 데이터 처리 과정에서의 괄호 사용법에 초점을 두고 있으며, 이는 특히 pandas 라이브러리의 경우 매우 일반적인 궁금증입니다.

yanicong님의 질문에서 언급한 대로, DataFrame에서 대괄호([])를 사용하는 방식은 컬럼을 선택하는 방식에 따라 시리즈(Series)와 데이터프레임(DataFrame)으로 결과를 반환하는 데 차이가 있습니다. 한 개의 대괄호([])를 사용할 경우 시리즈를, 두 개의 대괄호([[]])를 사용할 경우 데이터프레임을 반환합니다.

소괄호(())는 pandas의 다양한 메서드(예: groupby, sort_values)를 호출할 때 사용됩니다. 메서드의 인자로 컬럼 이름을 전달할 때는 대괄호를 사용하지 않고, 직접적으로 컬럼의 이름을 문자열로 넘깁니다. 이는 메서드에 의해 내부적으로 해당 컬럼을 참조하기 위한 구문입니다.

관련하여, 대괄호의 사용이 헷갈릴 때 찾아볼 수 있는 유용한 답변은 다음과 같습니다:

  • 캐글 T1-9 질문: 이 답변에서는 df['f5'] (시리즈 반환)와 df[['f5']] (데이터프레임 반환) 사이의 차이를 설명하고 있습니다. 스케일링 과정에서 데이터프레임 형식으로 입력값을 주기 위해 대괄호를 두 번 사용한 예시가 제시되어 있습니다. 이 설명은 컬럼을 선택할 때 대괄호를 사용하는 원리를 이해하는데 도움이 될 수 있습니다.

여기에서 우리가 볼 수 있는 것은, 대괄호([])와 소괄호(())의 사용이 각각의 문맥과 함수 또는 메서드의 요구에 따라 달라질 수 있다는 것입니다.

관련된 내용에 대해 더 자세하게 이해하기 위해서는:
- groupbysort_values 같은 pandas 메서드를 사용할 때는, 이러한 함수들이 문자열로 된 컬럼 이름을 직접 받으므로 대괄호 없이 컬럼 이름을 제공합니다.
- 컬럼을 직접 선택하여 작업을 수행할 때, 반환 형태를 제어하기 위해 대괄호의 개수를 조정할 수 있습니다. 단일 컬럼을 시리즈로 선택하거나, 하나 이상의 컬럼을 데이터프레임으로 선택할 때 사용됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yanicong님의 프로필 이미지
yanicong

작성한 질문수

질문하기