[Pandas]Series drop, dropna

반응형
    반응형

    Series의 drop과 slicing 에 대해서 살펴보겠습니다.

     

    Drop

    데이터를 받다보면 내가 필요없는 데이터들이 존재합니다. 그럴 때, drop을 이용해 데이터를 없앨 수 있습니다. 

    import numpy as np
    import pandas as pd
    s = pd.Sereis(np.arange(1,6),['a','b','c','d','e']
    s

    d를 없애보겠습니다.

    s.drop('d')

    이번엔 d와 e를 없애보겠습니다. d와 e 두개 이상의 데이터를 없앨때는 대괄호 안에 해당 인덱스를 써 넣습니다.

    s.drop(['d','e'])

    하지만 이런다고 s에서 완전히 없어진건 아닙니다. 원본 데이터는 그대로 둔채 drop된 새로운 데이터로 추가로 생성되는 방식이기 때문입니다.  s를 다시 부르면 d,e가 사라진 것이 아님을 알 수 있습니다.

    s

    이렇게 되는 이유는 파라미터를 살펴보면 알 수 있습니다.

    drop의 파라미터를 살펴보면 inplace=False 로 되어 있는 걸 볼 수 있습니다. inplace는 다른 곳에서도 종종 볼 수 있는데 원본데이터에 적용할것인지를 결정한다고 여기면 될 것 같습니다. True로 바꿔주면 원본데이터에 적용되고 False는 원본데이터에 적용이 안됩니다.

     

    inplace를 알았으니 이제 원본 데이터에 적용을 해보겠습니다.

    원본 데이터에서 d와 e를 없애겠습니다.

     

    s.drop(['d','e'],inplace=True)
    s

    s를 호출하면 d,e가 빠져서 나오는 것을 볼 수 있습니다.

     

    Dropna

    nan 이 있을 때 dropna를 이용하면 데이터 제거를 할 수 있습니다.

    nan을 먼저 생성하고 지워보겠습니다.

    s['k']=float('nan')
    s

    k라는 index에 nan을 넣었습니다.

    이제 dropna로 다시 없애겠습니다. 마찬가지로 inplace=True를 해야 s에 적용이 됩니다.

    s.dropna(inplace=True)
    s

    보시는바와 같이 nan을 없앴습니다. 

     

    이번 포스팅을 마치겠습니다. 읽어주셔서 감사합니다.

    'Python > Pandas' 카테고리의 다른 글

    [Pandas] DataFrame 살펴보기(생성,데이터파악)  (0) 2020.07.06
    [Pandas]Series 슬라이싱  (0) 2020.07.01
    Series Boolean Select  (0) 2020.06.24
    Series 연산  (0) 2020.06.20
    [Pandas] Series 간단 분석  (0) 2020.06.16

    댓글

    Designed by JB FACTORY

    ....