如何在 Python 中將分類資料轉換為二進位制資料?


分類資料,也稱為名義資料,是一種將資料劃分為離散類別或組的資料型別。這些類別沒有內在的順序或數值,通常用文字、標籤或符號表示。分類資料通常用於描述物件、人員或事件的特徵或屬性,並在社會科學、市場營銷和醫學研究等各個領域中出現。

在 Python 中,分類資料可以使用各種資料結構來表示,例如列表、元組、字典和陣列。Python 中最常用的分類資料結構是 Pandas DataFrame,它是一個二維表格式資料結構,可以儲存和處理大量資料。

以下是一個說明 Python 中分類資料的簡單示例。

假設您有一個包含人們擁有的車輛型別資訊的資料集。該資料集包含以下分類變數:

  • 車輛型別 - 汽車、卡車、SUV、貨車、摩托車

  • 燃料型別 - 汽油、柴油、電、混合動力

  • 顏色 - 紅色、藍色、綠色、黑色、白色

示例

您可以使用 Pandas DataFrame 在 Python 中表示此資料集,如下所示。

import pandas as pd

data = {'Vehicle Type': ['Car', 'Truck', 'SUV', 'Van', 'Motorcycle'],
   'Fuel Type': ['Gasoline', 'Diesel', 'Electric', 'Hybrid', 'Gasoline'],
   'Color': ['Red', 'Blue', 'Green', 'Black', 'White']}
df = pd.DataFrame(data)
print(df)

要執行以上程式碼,我們首先需要在我們的機器上安裝 Pandas 庫,為此我們可以使用以下命令:

pip3 install pandas

Pandas 成功安裝後,我們可以執行以下命令:

python3 main.py

輸出

以上命令的輸出如下所示。

  Vehicle Type Fuel Type  Color
0          Car  Gasoline    Red
1        Truck    Diesel   Blue
2          SUV  Electric  Green
3          Van    Hybrid  Black
4   Motorcycle  Gasoline  White

如您所見,分類變數在 DataFrame 中表示為列,每個類別在相應的列中表示為字串值。您可以使用各種 Pandas 函式和方法來處理和分析這些資料,例如groupby、count、value_counts和 crosstab。這些函式可以幫助您總結和視覺化類別的分佈和關係,從而提供對資料集的有價值的見解。

現在我們對分類資料有了一點了解,讓我們看看它們有哪些特徵。

分類資料的特徵

以下是提到的分類資料的一些特徵。

  • 分類資料具有有限數量的類別。

  • 這些類別沒有內在的順序或等級。

  • 分類資料可以在名義或順序尺度上測量。

  • 分類資料通常使用計數或頻率分佈來彙總。

  • 與數值資料相比,分類資料的統計分析有限。

將分類資料轉換為二進位制資料

將分類資料轉換為二進位制資料涉及將分類變數轉換為二進位制(0 或 1)值,以便用於分析或建模目的。這種轉換很有用,因為許多機器學習演算法和統計方法需要數值輸入,而不是分類輸入。

二進位制編碼是一種常見的方法,它將分類變數中的每個唯一類別轉換為單獨的二進位制列,其中值 1 表示類別的存在,0 表示類別的不存在。

使用 Pandas 的 get_dummies() 函式或其他類似庫,可以在 Python 中輕鬆實現此技術。二進位制編碼有助於提高預測模型的準確性、減少資料儲存需求並簡化資料分析。

示例

考慮以下程式碼,我們將使用 Pandas 將分類資料轉換為二進位制資料。

import pandas as pd

# create a sample DataFrame with categorical data
data = {'Gender': ['Male', 'Female', 'Male', 'Female'],
   'City': ['New York', 'Chicago', 'Chicago', 'Los Angeles'],
   'Marital Status': ['Single', 'Married', 'Single', 'Divorced']}
df = pd.DataFrame(data)

# use get_dummies() to encode categorical variables as binary values
encoded_df = pd.get_dummies(df)

print(encoded_df)

解釋

  • 第一行將 Pandas 庫匯入為 pd。

  • 在 data 字典中建立了一個包含分類資料的示例 DataFrame。DataFrame 包含三個分類變數:性別、城市和婚姻狀況。

  • pd.DataFrame() 函式用於從 data 字典建立 Pandas DataFrame。此 DataFrame 分配給變數 df。

  • 在 df DataFrame 上呼叫 pd.get_dummies() 函式以將分類變數轉換為二進位制值。此函式建立一個新的 DataFrame,其中包含分類變數中每個唯一類別的二進位制編碼。

  • 將生成的二進位制編碼 DataFrame 分配給變數 encoded_df。

  • 最後,使用 print() 函式顯示生成的二進位制編碼 DataFrame。

要執行以上程式碼,我們需要執行以下命令。

python3 main.py

輸出

以上命令的輸出如下所示。

   Gender_Female  Gender_Male  ...  Marital Status_Married  Marital Status_Single
0              0            1  ...                       0                      1
1              1            0  ...                       1                      0
2              0            1  ...                       0                      1
3              1            0  ...                       0                      0

[4 rows x 8 columns]

結論

將分類資料轉換為二進位制資料是機器學習和統計分析中資料預處理的重要步驟。在本教程中,我們學習瞭如何探索什麼是分類資料以及如何使用 Pandas 庫將其轉換為二進位制資料。

更新於: 2023年4月18日

3K+ 瀏覽量

啟動您的 職業生涯

透過完成課程獲得認證

開始
廣告