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中使用各种数据科学库进行轻松操控和分析。