ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 8일차(249 ~ 271)
    책/파이썬 라이브러리를 활용한 데이터 분석 2019. 3. 28. 20:35
    반응형

    이번엔 merge명령어에 대한 자세한 설명을 하고 있습니다.

    key인자는 어떤 것을 기준으로 DataFrame을 합칠 것인지 결정하는 인자입니다. 왠만하면 key로 기준을 잡고 합치는게 좋다고 하네요.

    하지만 key는 두 개의 DataFrame에 겹치는 columns가 있어야 만들 수 있습니다.

    만약 없다면 left_on, right_on 인자로 지정해주면 됩니다.

    left_on은 왼쪽 DataFrame의 변수를 key로 사용합니다.

    right_on은 오른쪽 DataFrame의 변수를 key로 사용합니다.

     

    how인자는 어떻게 결과를 반환할 것인지 정하는 인자입니다.

    how='inner'는 기본 값으로 교집합을 반환합니다.

    how='outer'는 합집합을 반환합니다.

    how='left'는 왼쪽에 있는 DataFrame의 key만 가지고 만들어냅니다.

    how='right'는 오른쪽에 있는 DataFrame의 key만 가지고 만들어냅니다.

     

    253쪽에 나오는 데카르트 곱이란 곱집합과 같은 말로 어떤 둘의 집합에서 각 집합으로부터 값을 하나씩 고른 것으로 이루어진 집합을 할 수 있게하는 연산이라고 생각하면 됩니다.

    예시를 보면 쉽게 이해할 수 있습니다.

    세 개이상으로 들어가면 위 코드가 틀리겠지만 일단 두 개의 집합으로 데카르트 곱을 구현하면 이렇게 나옵니다.

     

    on인자는 columns에 넣을 값을 정해주는 인자입니다. 기본 값은 columns에 있는 공통 값을 넣어줍니다.

    만약 columns에 공통으로 존재하는 값인데 on에 넣어주지 않은 경우 _x(왼쪽), _y(오른쪽)을 붙여서 columns를 나눠 표현을 해줍니다.

    suffixes인자는 column name이 겹칠 경우 각 column name뒤에 붙일 값을 정해줍니다. (기본 값: _x,_y)

    left_index는 왼쪽 DataFrame의 index를 key로 설정한다는 인자입니다.

    right_index는 오른쪽 DataFrame의 index를 key로 설정한다는 인자입니다.

    left_index/right_index의 기본 값은 False입니다.

    잘모르신다면 https://rfriend.tistory.com/259 여기에 들어가시면 됩니다.

     

     259쪽입니다.

    np.concatenate 는 데이터를 이어붙인다는 명령어입니다. pd.concat도 같은 역할을 합니다. 하지만 concat은 축(axis)를 선택할 수 있습니다.

    pd.concat(~~,axis=1)을 하면 FutureWarning이 나옵니다. 

    검색해서 더 살펴보니 나중에 나올 버전에서는 기본 값이 연결되지 않은 축이 정렬되지 않도록 변경한다고 합니다.(기본값을 sort=False로 변경)

    저희는 sort=True라고 하면 됩니다.

     

    concat에 있는 join은 결과를 어떻게 반환하는지 결정하는 인자입니다. merge에 나오는 how인자와 역할이 같지만 설정하는 값이 inner(교집합)와 outer(합집합)밖에 없습니다.

    join_axes는 index를 지정하는 인자입니다.

    objs는 이어붙일 pd객체의 사전,리스트,필수 인자를 넣는 인자입니다.

    verify_integrity는 이어붙인 객체에 중복된 축이 있는지 검사하고, 만약 있다면 예외를 발생시킨다고 합니다. 기본 값은 중복허용(False)입니다.

     

    Y.combine_first(X) 명령어는 Y에 있는 결측 값을 X에 있는 값으로 바꾸는 명령어입니다. 이때 X의 index와 바꾸려는 Y의index가 같은 것만 값을 바꿀 수 있습니다. 덤으로 정렬도 해줍니다.(p.265)

    g는 b에 없기 때문에 그대로 NaN이 나옵니다.

    to_records 명령어는 DataFrame을 Numpy의 record array로 변환시켜줍니다.

    -record array란? http://preview.hanbit.co.kr/2613/sample_ebook.pdf (여기서 Ctrl+F로 레코드 배열 찾으면 됩니다)

    periods는 일정 기간을 나타낼 수 있는 클래스입니다.

    to_timestamp는 타임스탬프 표현으로 반환하는 명령어입니다. 타임스탬프란 특정한 시각을 나타내는 문자열입니다.

    https://www.geeksforgeeks.org/python-pandas-period-to_timestamp/ 여기에 예시가 잘 나와있습니다.

     

    pivot명령어는 피봇 테이블을 만드는 명령어라고 합니다. 3-1일차에 나온 pivot_table과 비슷한 명령어인데 pivot_table은 그룹분석(group_by)까지 하고 피봇 테이블을 만드는 명령어라고 합니다.(p.270)

    반응형

    ' > 파이썬 라이브러리를 활용한 데이터 분석' 카테고리의 다른 글

    10일차(305 ~ 344)  (0) 2019.04.01
    9일차(272 ~ 304)  (0) 2019.03.29
    7-2일차(219 ~ 247)  (0) 2019.03.27
    7-1일차(192 ~ 217)  (0) 2019.03.27
    6일차(157 ~ 192)  (0) 2019.03.26

    댓글

Designed by Tistory.