處理遺漏值

使用 pandas 重塑資料

Maria Eugenia Inzaugarat

Data Scientist

複習

  • 堆疊與反堆疊 DataFrame:
    • 所有欄索引層級
    • 其中一個列索引層級
    • 選擇要堆疊或反堆疊的層級
使用 pandas 重塑資料

反堆疊會產生遺漏值

子群的標籤集合不相同

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 重塑資料

反堆疊會產生遺漏值

子群的標籤集合不相同

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 重塑資料

反堆疊會產生遺漏值

子群的標籤集合不相同

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 重塑資料

反堆疊會產生遺漏值

子群的標籤集合不相同

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 重塑資料

用反堆疊處理 NaN

animals.unstack(level='class', fill_value=    )
使用 pandas 重塑資料

用反堆疊處理 NaN

animals.unstack(level='class', fill_value='No')
使用 pandas 重塑資料

用反堆疊處理 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 重塑資料

堆疊與遺漏值

原始 DataFrame 缺少某些索引與欄位值的組合

flowers
     petals Stigma
     number   size
rose     40    NaN
Lily      8      5
使用 pandas 重塑資料

堆疊與遺漏值

原始 DataFrame 缺少某些索引與欄位值的組合

flowers.stack()
            Stigma  petals
rose number    NaN    40.0
Lily number    NaN     8.0
       size      5     NaN
使用 pandas 重塑資料

堆疊與遺漏值

原始 DataFrame 缺少某些索引與欄位值的組合

flowers.stack(dropna=True)
            Stigma  petals
rose number    NaN    40.0
Lily number    NaN     8.0
       size      5     NaN
使用 pandas 重塑資料

堆疊與遺漏值

原始 DataFrame 缺少某些索引與欄位值的組合

flowers.stack(dropna=False)
            Stigma  petals
rose number    NaN    40.0
         size    NaN     NaN <--
Lily number    NaN     8.0
       size      5     NaN
使用 pandas 重塑資料

用堆疊處理 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 重塑資料

一起來練習吧!

使用 pandas 重塑資料

Preparing Video For Download...