Pandas 如何将Sklearn数据集转换为Pandas数据框

Pandas 如何将Sklearn数据集转换为Pandas数据框

Scikit-learn(sklearn) 是Python中最受欢迎的机器学习库之一。它提供了一系列高效的工具,用于机器学习和统计建模,包括各种数据集。这些数据集以numpy数组的形式提供,对于某些任务(如探索性数据分析)而言,处理起来可能很困难。

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

下面是两种方法,我们可以将一个sklearn数据集转换为pandas数据框。

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

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

既然我们了解了这两种方法,让我们通过示例来使用它们。

使用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模块和pandas库中导入load_iris函数。

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

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

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

  • 最后,我们使用head()方法打印pandas数据帧df的前五行。

输出

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

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程