如何在 Python 中将 Sklearn 数据集转换为 Pandas 数据框?
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 数据框。