결측치 처리

pandas로 데이터 재구조화하기

Maria Eugenia Inzaugarat

Data Scientist

복습

  • DataFrame을 stack/unstack:
    • 모든 열 인덱스 레벨
    • 행 인덱스의 한 레벨
    • stack/unstack할 레벨 선택
pandas로 데이터 재구조화하기

unstack 시 결측값 발생

하위 그룹의 레이블이 동일하지 않음

animals
                                jump  run  fly
class    order         name                   
Mammalia carnivora     dog        No  Yes   No
         Diprotodontia Kangaroo  Yes   No   No
Aves     hervibora     bird       No   No  Yes
pandas로 데이터 재구조화하기

unstack 시 결측값 발생

하위 그룹의 레이블이 동일하지 않음

animals
                                jump  run  fly
class    order         name                   
   Mammalia carnivora     dog        No  Yes   No <--
         Diprotodontia Kangaroo  Yes   No   No
Aves     hervibora     bird       No   No  Yes
pandas로 데이터 재구조화하기

unstack 시 결측값 발생

하위 그룹의 레이블이 동일하지 않음

animals.unstack(level='class')
                                 jump            run           fly         
        clas             Aves Mammalia Aves Mammalia Aves Mammalia
        order       name                                              
  Diprotodontia Kangaroo  NaN      Yes  NaN       No  NaN       No
      carnivora      Dog  NaN       No  NaN      Yes  NaN       No
Charadriiformes   Avocet   No      NaN   No      NaN  Yes      NaN
pandas로 데이터 재구조화하기

unstack 시 결측값 발생

하위 그룹의 레이블이 동일하지 않음

animals.unstack(level='class')
                                 jump            run           fly         
        clas             Aves Mammalia Aves Mammalia Aves Mammalia
        order       name                                              
  Diprotodontia Kangaroo  NaN      Yes  NaN       No  NaN       No
  -----------------------------
      carnivora      Dog  NaN <--  No   NaN      Yes  NaN       No
  -----------------------------
Charadriiformes   Avocet   No      NaN   No      NaN  Yes      NaN
pandas로 데이터 재구조화하기

unstack로 NaN 처리

animals.unstack(level='class', fill_value=    )
pandas로 데이터 재구조화하기

unstack로 NaN 처리

animals.unstack(level='class', fill_value='No')
pandas로 데이터 재구조화하기

unstack로 NaN 처리

animals.unstack(level='class', fill_value='No').sort_index(level=['order', 'name'], ascending=[True, False])
                                 jump            run           fly         
        clas             Aves Mammalia Aves Mammalia Aves Mammalia
        order       name                                              
  Diprotodontia Kangaroo   No      Yes   No       No   No       No
      carnivora      Dog   No       No   No      Yes   No       No
Charadriiformes   Avocet   No       No   No       No  Yes       No
pandas로 데이터 재구조화하기

stack과 결측값

원본 DataFrame에 없는 인덱스·열 조합

flowers
     petals Stigma
     number   size
rose     40    NaN
Lily      8      5
pandas로 데이터 재구조화하기

stack과 결측값

원본 DataFrame에 없는 인덱스·열 조합

flowers.stack()
            Stigma  petals
rose number    NaN    40.0
Lily number    NaN     8.0
       size      5     NaN
pandas로 데이터 재구조화하기

stack과 결측값

원본 DataFrame에 없는 인덱스·열 조합

flowers.stack(dropna=True)
            Stigma  petals
rose number    NaN    40.0
Lily number    NaN     8.0
       size      5     NaN
pandas로 데이터 재구조화하기

stack과 결측값

원본 DataFrame에 없는 인덱스·열 조합

flowers.stack(dropna=False)
            Stigma  petals
rose number    NaN    40.0
         size    NaN     NaN <--
Lily number    NaN     8.0
       size      5     NaN
pandas로 데이터 재구조화하기

stack으로 NaN 처리

flowers.stack(dropna=False).fillna(0)
            Stigma  petals
rose number      0    40.0
       size      0       0
Lily number      0     8.0
       size      5       0
pandas로 데이터 재구조화하기

Lass uns üben!

pandas로 데이터 재구조화하기

Preparing Video For Download...