如何在 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+ 浏览量

开启您的 职业生涯

通过完成课程获得认证

立即开始
广告

© . All rights reserved.