将Pandas数据集转换为数组,以便在Scikit-Learn中进行建模

时间:2014-03-21 14:31:32

标签: python pandas scikit-learn

我们可以在Pandas DataFrames上运行scikit-learn模型,还是需要将DataFrames转换为NumPy数组?

2 个答案:

答案 0 :(得分:9)

您可以将pandas.DataFramesklearn一起使用,例如:

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)

答案 1 :(得分:7)

Pandas DataFrames非常善于在需要时表现得像Numpy数组。如果有疑问,您可以随时使用values属性来获取Numpy表示(df.values将为您提供DataFrame df中值的Numpy数组。