如何在 Python 中将 Sklearn 数据集转换为 Pandas 数据框?

pythonpandasprogramming

Scikit-learn (sklearn) 是 Python 最流行的机器学习库之一。它提供了一系列用于机器学习和统计建模的有效工具,包括各种数据集。这些数据集以 numpy 数组的形式提供,对于某些任务(例如探索性数据分析)来说,这可能很难使用。

Pandas 是一个流行的数据操作库,它提供了强大的数据分析和操作工具。它提供了用于有效存储和操作大型数据集的数据结构,并提供了用于数据清理、转换和分析的各种工具。

以下是我们将 sklearn 数据集转换为 pandas 数据框的两种方法。

  • 将 sklearn Bunch 对象转换为 pandas DataFrame:在这种方法中,我们将使用 pd.DataFrame() 方法将 sklearn Bunch 对象直接转换为 pandas 数据框。

  • 使用 load_iris() 方法将鸢尾花数据集加载到 pandas DataFrame 中:在这种方法中,我们将使用 sklearn 提供的 load_iris() 方法加载鸢尾花数据集,然后将数据转换为 pandas 数据框。

现在我们已经了解了这两种方法,让我们借助示例来使用它们。

使用 sklearn Bunch 对象

考虑下面显示的代码。

示例

from sklearn.datasets import load_iris
import pandas as pd

# 从 sklearn 加载鸢尾花数据集
iris = load_iris()

# 将鸢尾花数据集转换为 pandas 数据框
df = pd.DataFrame(iris.data, columns=iris.feature_names)

# 将目标变量添加到数据框
df['target'] = iris.target

# 打印数据框的前 5 行
print(df.head())

说明

  • 首先,我们从 sklearn.datasets 模块和 pandas 库导入 load_iris 函数。

  • 然后,我们加载鸢尾花数据集使用 load_iris() 函数将其添加到 iris 变量中。

  • 我们使用 iris 数据和特征名称创建一个 pandas 数据框 df。在这里,我们将 iris.data 作为数据传递,将 iris.feature_names 作为 pd.DataFrame() 方法中的列参数传递。

  • 接下来,我们使用 iris.target 将目标变量添加到 pandas 数据框,并将其分配给数据框 df 中的新列目标。

  • 最后,我们使用 head() 方法打印 pandas 数据框 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

# 从 sklearn 加载鸢尾花数据集
iris = load_iris()

# 将数据集转换为元组列表
data = [tuple(row) for row in iris.data]

# 从元组列表创建 Pandas DataFrame
df = pd.DataFrame.from_records(data, columns=iris.feature_names)

# 将目标变量添加到 DataFrame
df['target'] = iris.target

# 显示 DataFrame 的前五行
print(df.head())

说明

  • 导入所需的库:我们首先导入此方法所需的库,包括 pandas、numpy 和 sklearn。

  • 使用 sklearn.datasets 模块中的 load_boston 函数加载数据集:我们使用 load_boston 函数将 Boston Housing 数据集加载到名为 boston 的变量中。

  • 将数据转换为 Pandas 数据框:我们使用 pd.DataFrame() 函数将数据转换为 Pandas 数据框。

  • 将特征名称添加为列名:我们使用 boston 数据集的 feature_names 属性设置数据框的列名。

  • 将目标变量添加到数据框:我们通过创建一个名为"PRICE"的新列并将其值设置为 boston 中的目标变量,将目标变量添加到数据框数据集。

  • 显示数据框的前几行:我们使用 head() 函数显示新创建的 Pandas 数据框的前几行。

输出

    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 数据框是一个简单的过程,可以通过多种方式完成。无论您选择使用 Sklearn 内置方法还是 Pandas 方法,都可以使用 Python 中的各种数据科学库轻松操作和分析生成的 Pandas 数据框。


相关文章