Python 将数据集转换为数组,以便在Scikit Learn中建模

Python 将数据集转换为数组,以便在Scikit Learn中建模,python,pandas,scikit-learn,Python,Pandas,Scikit Learn,我们可以在Pandas数据帧上运行scikit学习模型,还是需要将数据帧转换为NumPy阵列?您可以将Pandas.DataFrame与sklearn一起使用,例如: import pandas as pd from sklearn.cluster import KMeans data = [(0.2, 10), (0.3, 12), (0.24, 14), (0.8, 30), (0.9, 32), (0.85,

我们可以在Pandas数据帧上运行scikit学习模型,还是需要将数据帧转换为NumPy阵列?

您可以将
Pandas.DataFrame
sklearn
一起使用,例如:

import pandas as pd
from sklearn.cluster import KMeans

data = [(0.2, 10),
        (0.3, 12),
        (0.24, 14),
        (0.8, 30),
        (0.9, 32),
        (0.85, 33.3),
        (0.91, 31),
        (0.1, 15),
        (-0.23, 45)]

p_df = pd.DataFrame(data)
kmeans = KMeans(init='k-means++', n_clusters=3, n_init=10)
kmeans.fit(p_df)
结果:

>>> kmeans.labels_
array([0, 0, 0, 2, 2, 2, 2, 0, 1], dtype=int32)

熊猫数据帧非常擅长在需要时充当Numpy数组。如果有疑问,您可以始终使用
values
属性来获取Numpy表示(
df.values
将为您提供DataFrame中数值的Numpy数组
df

显示如何处理具有命名列的DataFrame会提供更多信息,因为这会导致更多问题。将这两种方法结合起来作为另一种答案会更好。