Можем ли мы запускать модели scikit-learn на Pandas DataFrames или нам нужно преобразовать DataFrames в массивы NumPy?
Pandas набор данных в массив для моделирования в Scikit-Learn
Ответ 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
.