Pandas набор данных в массив для моделирования в Scikit-Learn

Можем ли мы запускать модели scikit-learn на Pandas DataFrames или нам нужно преобразовать DataFrames в массивы NumPy?

Ответ 1

Вы можете использовать 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)

Ответ 2

Pandas DataFrames очень хороши для того, чтобы действовать, как массивы Numpy, когда им нужно. Если вы сомневаетесь, вы всегда можете использовать атрибут values для получения представления Numpy (df.values даст вам массив Numpy значений в DataFrame df.