ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 6일차(157 ~ 192)
    책/파이썬 라이브러리를 활용한 데이터 분석 2019. 3. 26. 22:02
    반응형

    SeriesDataframe은 이미 이전에 배운 내용입니다.



    obj.index가 책 내용과는 다르네요.(159쪽)

    index를 따로 설정해두면 아래 사진들처럼 책과 똑같이 나오지만,



    index 설정을 따로 안해주면 rangeindex로 나옵니다.




    Series 객체와 Series 색인은 모두 name속성이 있다고 합니다.(162쪽)

    name은 이름을 정해주는 것이라 굳이 설명이 필요 없다고 생각합니다.

    이름을 정해주고 DataFrame으로 나타내주면 다음과 같이 나타납니다.

    name을 따로 설정을 해주지 않으면 다음과 같이 나타납니다.



    171쪽 입니다.

    intersection은 색인의 교집합을 의미합니다. 4장 numpy에 나온 intersect1d와 같은 역할을 합니다.

    drop은 넘겨 받은 값이 삭제된 새로운 색인을 반환합니다.


    is_monotonic은 단조증가를 하면 True를 반환하고, 아니라면 False를 반환합니다.

    값이 감소하지 않은 경우 단조증가라고 합니다. 즉, 1 - 2 - 3 - 3 도 값이 감소하지 않았으니 단조증가 입니다.

    예시는 https://www.geeksforgeeks.org/python-pandas-series-is_monotonic/ 여기 링크에 있습니다.


    is_unique는 중복되는 색인이 없다면 True를 반환하고, 아니라면 False를 반환합니다.

    파이썬을 처음하는 분이 아니라면 어떤 리스트 X가 있을 때, X = list(set(X))와 같다고 생각하시면 됩니다.


    ffill, pad는 앞의 값을 채워 넣는다는 명령어입니다.

    bfill, backfill은 뒤의 값을 채워 넣는다는 명령어 입니다.

    이 명령어를 어디서 많이 봤나 했는데 1일차에 fillna 때문에 올린 링크에 있었네요.

    예시를 보고 싶은 분들은 https://rfriend.tistory.com/262 여기에 들어가시면 됩니다.


    그리고 174쪽에 가장 아래 코드를 그대로 따라 적으면 아래 사진과 같이 오류가 뜹니다.


    검색을 해보니 https://stackoverflow.com/questions/47388717/python-reindexing-with-method-ffill 여기에 저와 같은 이유로 질문한 사람이 있었습니다.

    ix를 쓸 때 나온 경고문으로 예상할 수 있듯이 책에 나온 pandas 버전이 매우 오래된 버전입니다.

    코드가 살짝 다르지만 댓글을 보니 같은 책으로 공부하고 있네요.

    답변에 나온 코드처럼 아래와 같이 해결 할 수도 있긴 합니다. 하지만 Utah가 NaN으로 나와야 하는데 값이 채워져 있습니다.

    책에 나온 부분과 완벽히 똑같이 하려면 reindex를 두 번 사용하면 됩니다.



    ------------------------------------------------------------------------------------------------------------------------

    ix에 대해 저번에 언급은 하였지만 이번엔 거기에 나온 경고문에 대해 알아봅시다.

    179쪽에 ix를 너무 많이 사용해서 이번 한 번만 언급하고, 지나가려고 합니다.

    이름으로 찾을 경우 loc, 위치로 찾으려면 iloc 사용을 권장하고 있습니다.

    밑의 코드를 보며 이해할 수는 있지만 더 자세한 내용을 찾고 싶다면 아래 링크에서 확인할 수 있습니다.

    https://stackoverflow.com/questions/31593201/how-are-iloc-ix-and-loc-different/46915810#46915810


    In[121]은 ix대신 loc으로 바꾸면 됩니다.

    In[122]은 이름과 위치 둘 다 혼용하고 있습니다. 아래 두 코드중 하나 골라서 작성하면 됩니다.

    In[123]은 iloc으로, In[124]는 loc으로 바꿔주기만 하면 됩니다.

    In[125]는 In[122]와 같이 혼용하여 사용하고 있습니다. iloc으로 어떻게 바꿔야할지 모르겠네요.

    loc으로 바꿀경우 아래와 같이 하면 됩니다.


    180쪽에 icol, irow가 있습니다. documentation을 살펴보니 각각 loc, iloc 사용하길 권장하고 있습니다.


    189쪽입니다.

    rank 는 순위를 구해주는 명령어입니다. 동점자가 있을 시에는 평균 순위를 구한다고 나와있습니다.

    만약 obj = Series([1,2,3,4,4,4])가 있을 경우 4인 값이 4,5,6등을 차지하므로 5가 나옵니다.

    rank(method = 'average')는 기본 값입니다. 위에 설명한 내용입니다.

    rank(method = 'min')은 같은 값을 가지는 그룹을 낮은 순위로 매깁니다.

    만약 [1,2,2,3,3,3]이 있다면 1은 1등, 2는 2~3등을 차지하므로 전부 2등, 3은 4~6등을 차지하므로 전부 4등입니다.

    rank(method = 'max')는 같은 값을 가지는 그룹을 높은 순위로 매깁니다.

    만약 [1,2,2,3,3,3,]이 있다면 1은 1등,2는 2~3등을 차지하므로 전부 3등, 3은 4~6등을 차지하므로 전부 6등입니다.

    rank(method = 'first')는 데이터 내에서 위치에 따라 순위를 매깁니다.

    만약 [1,2,2,3,3,3]이 있으면 각각 1등,2등,3등,4등,5등,6등으로 정해집니다.

    반응형

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

    7-2일차(219 ~ 247)  (0) 2019.03.27
    7-1일차(192 ~ 217)  (0) 2019.03.27
    5일차(135 ~ 155)  (0) 2019.03.25
    4일차(115 ~ 134)  (0) 2019.03.25
    3-2일차(55 ~ 70)  (0) 2019.03.23

    댓글

Designed by Tistory.