如何在 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 中的各種資料科學庫進行處理和分析。