如何在 Python 中將 Sklearn 資料集轉換為 Pandas DataFrame?


Scikit−learn (sklearn) 是 Python 中最流行的機器學習庫之一。它提供了一系列用於機器學習和統計建模的有效工具,包括各種資料集。這些資料集以 NumPy 陣列的形式提供,對於某些任務(例如探索性資料分析)來說,使用起來可能比較困難。

Pandas 是一個流行的資料處理庫,它提供了強大的資料分析和處理工具。它提供資料結構以有效地儲存和處理大型資料集,並提供各種資料清洗、轉換和分析工具。

以下是兩種可以將 sklearn 資料集轉換為 pandas DataFrame 的方法。

  • 將 sklearn Bunch 物件轉換為 pandas DataFrame:在這種方法中,我們將使用 pd.DataFrame() 方法將 sklearn Bunch 物件直接轉換為 pandas DataFrame。

  • 使用 load_iris() 方法將 iris 資料集載入到 pandas DataFrame 中:在這種方法中,我們將使用 sklearn 提供的 load_iris() 方法載入 iris 資料集,然後將其資料轉換為 pandas DataFrame。

現在我們已經瞭解了這兩種方法,讓我們透過示例來使用它們。

使用 sklearn Bunch 物件

請考慮以下程式碼。

示例

from sklearn.datasets import load_iris
import pandas as pd

# Load the iris dataset from sklearn
iris = load_iris()

# Convert the iris dataset to a pandas dataframe
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# Add the target variable to the dataframe
df['target'] = iris.target

# Print the first 5 rows of the dataframe
print(df.head())

解釋

  • 首先,我們從 sklearn.datasets 模組匯入 load_iris 函式,以及 pandas 庫。

  • 然後,我們使用 load_iris() 函式將 iris 資料集載入到 iris 變數中。

  • 我們使用 iris 資料和特徵名稱建立一個 pandas DataFrame df。在這裡,我們將 iris.data 作為資料傳遞,並將 iris.feature_names 作為 pd.DataFrame() 方法中的 columns 引數。

  • 接下來,我們使用 iris.target 將目標變數新增到 pandas DataFrame 中,並將其分配給 DataFrame df 中的新列 target。

  • 最後,我們使用 head() 方法列印 pandas DataFrame df 的前 5 行。

輸出

    sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  target
0                5.1               3.5                              1.4               0.2                      0
1                4.9               3.0                              1.4               0.2                      0
2                4.7               3.2                               1.3              0.2                      0
3                4.6               3.1                               1.5              0.2                      0
4                5.0               3.6                               1.4              0.2                      0

使用 load_iris() 方法

請考慮以下程式碼。

示例

from sklearn.datasets import load_iris
import pandas as pd

# Load the iris dataset from sklearn
iris = load_iris()

# Convert the dataset to a list of tuples
data = [tuple(row) for row in iris.data]

# Create a Pandas DataFrame from the list of tuples
df = pd.DataFrame.from_records(data, columns=iris.feature_names)

# Add the target variable to the DataFrame
df['target'] = iris.target

# Show the first five rows of the DataFrame
print(df.head())

解釋

  • 匯入所需的庫: 對於此方法,我們首先匯入必要的庫,包括 pandas、numpy 和 sklearn。

  • 使用 sklearn.datasets 模組中的 load_boston 函式載入資料集: 我們使用 load_boston 函式將波士頓房價資料集載入到名為 boston 的變數中。

  • 將資料轉換為 Pandas DataFrame: 我們使用 pd.DataFrame() 函式將資料轉換為 Pandas DataFrame。

  • 將特徵名稱作為列名新增: 我們使用 boston 資料集的 feature_names 屬性設定 DataFrame 的列名。

  • 將目標變數新增到 DataFrame 中: 我們透過建立一個名為“PRICE”的新列並將它的值設定為 boston 資料集中的目標變數,從而將目標變數新增到 DataFrame 中。

  • 顯示 DataFrame 的前幾行: 我們使用 head() 函式顯示新建立的 Pandas DataFrame 的前幾行。

輸出

    sepal length (cm)  sepal width (cm)  petal length (cm)  petal width (cm)  target
0                5.1               3.5                              1.4               0.2                      0
1                4.9               3.0                              1.4               0.2                      0
2                4.7               3.2                               1.3              0.2                      0
3                4.6               3.1                               1.5              0.2                      0
4                5.0               3.6                               1.4              0.2                      0

結論

總之,將 Sklearn 資料集轉換為 Pandas DataFrame 是一個簡單的過程,可以透過多種方式完成。無論您選擇使用 Sklearn 內建方法還是 Pandas 方法,生成的 Pandas DataFrame 都可以輕鬆地使用 Python 中的各種資料科學庫進行處理和分析。

更新於: 2023年8月3日

5K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告