課程導論

在 Python 中處理類別資料

Kasey Jones

Research Data Scientist

「類別型」是什麼意思?

類別型

  • 只有有限個群組(或類別)
  • 這些類別通常固定或已知(眼睛顏色、頭髮顏色等)
  • 又稱為質性資料

數值型

  • 又稱為量化資料
  • 以數值表達
  • 通常是量測值(身高、體重、IQ 等)
在 Python 中處理類別資料

有序 vs. 名目變數

有序(Ordinal)

  • 具自然順序的類別變數

問卷回覆常從「非常不同意」到「非常同意」。這些類別有邏輯上的先後順序。

名目(Nominal)

  • 無法排列自然順序的類別變數

有些類別(例如從清單中選顏色:「Blue」、「Green」、「Red」、「Yellow」、「purple」)沒有邏輯上的先後順序。

在 Python 中處理類別資料

第一個資料集

adult.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 32561 entries, 0 to 32560
Data columns (total 15 columns):
 #   Column           Non-Null Count  Dtype 
 --  ------           --------------  ----- 
 0   Age              32561 non-null  int64 
 1   Workclass        32561 non-null  object
 2   fnlgwt           32561 non-null  int64 
 3   Education        32561 non-null  object
 4   Education Num    32561 non-null  int64 
 5   Marital Status   32561 non-null  object
...
1 https://www.kaggle.com/uciml/adult-census-income
在 Python 中處理類別資料

使用 describe

adult["Marital Status"].describe()
count                   32561
unique                      7
top        Married-civ-spouse
freq                    14976
Name: Marital Status, dtype: object
在 Python 中處理類別資料

使用 value_counts

adult["Marital Status"].value_counts()
 Married-civ-spouse       14976
 Never-married            10683
 Divorced                  4443
 Separated                 1025
 Widowed                    993
 Married-spouse-absent      418
 Married-AF-spouse           23
Name: Marital Status, dtype: int64
在 Python 中處理類別資料

value_counts 加上 normalize

adult["Marital Status"].value_counts(normalize=True)
 Married-civ-spouse       0.459937
 Never-married            0.328092
 Divorced                 0.136452
 Separated                0.031479
 Widowed                  0.030497
 Married-spouse-absent    0.012837
 Married-AF-spouse        0.000706
Name: Marital Status, dtype: float64
在 Python 中處理類別資料

知識檢查

在 Python 中處理類別資料

Preparing Video For Download...