• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

선생님 질문있습니다

22.01.02 18:03 작성 조회수 149

1

안녕하세요 항상 강의 잘듣고있습니다 새해복 많이 받으세요 :)

 

데이터 분석을 하다가 문득 data.columns 로 접근 하는 방식이 있고 data.isna() 이런식 으로 접근 하는 방식이 있잖아요?

즉 ()이 붙는 경우와 안붙는 경우로 나뉘는데 이게 도대체 뭘 뜻하는지 모르겠습니다.  자세히 알려주시면 감사하겠습니다 :)

                         

답변 1

답변을 작성해보세요.

1

안녕하세요.

좋은 질문을 주셨네요!

많이 주시는 질문 중에 하나인데요.

해당 소스코드를 먼저 볼게요. 아래 링크에서 전체 소스코드를 보실 수 있습니다.

https://github.com/pandas-dev/pandas/blob/v1.3.5/pandas/core/frame.py#L570-L580

    def __init__(
        self,
        data=None,
        index: Axes | None = None,
        columns: Axes | None = None,
        dtype: Dtype | None = None,
        copy: bool | None = None,
    ):

 

그리고 데이터프레임에 대한 위 코드를 이해하기 위해서는 어트리뷰트와 메서드를 이해하면 좋은데요.

클래스에서 index, columns, dtype은 어트리뷰트로 정의 되었기 때문에 괄호를 사용하지 않고

head(), tail(), drop() 등의 기능은 메서드로 정의 되었기 때문에 괄호를 사용합니다.

 

클래스에 대한 내용은 다음의 링크를 참고해 보세요!

[파이썬 코딩 도장: 35.1 클래스 속성과 인스턴스 속성 알아보기](https://dojang.io/mod/page/view.php?id=2378)

 

그리고 판다스의 데이터프레임과 시리즈에 대한 문서도 함께 확인해 보세요.

판다스 내부에서 옵션이 들어가지 않아도 되는 index, columns, shape 등은 API를 구현할 때 어트리뷰트로 구현이 되었다고 보면 됩니다. 

시리즈 문서 [Series — pandas documentation](https://pandas.pydata.org/docs/reference/series.html)

데이터프레임 문서 [pandas.DataFrame — pandas documentation](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html)

 

새해 복 많이 받으세요 :)