Структура данных для кластеризации KMeans с использованием Pandas DataFrames

В настоящее время я работаю над некоторыми научными данными и пытаюсь выполнить задачу кластеризации, но получаю ошибку значения из-за формата данных. Это два Pandas DataFrames в [170 строк x 7 столбцов].

Я пробовал переносить данные, форматировать в виде списка, а также в виде массива numpy. Формат, который я показываю в коде, взят из решения, найденного здесь: ValueError: невозможно скопировать последовательность с размером 5 на ось массива с размером 2

#x is the y distance
x = np.empty(7, dtype = object)
x[:] = [distance_lC, distance_fC]

#y is the speed.
y = np.empty(7, dtype = object)
y[:] = [speed_lC, speed_fC]

cell_kmeans = KMeans(n_clusters = 4).fit_predict(y)

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.scatterplot(cell_kmeans)
plt.show()

На выходе должен выдать кластер. Но у меня есть следующая ошибка значения: «ValueError: установка элемента массива с последовательностью».


person Hugobp    schedule 12.07.2019    source источник
comment
Я думаю, что когда вы сделаете y[:] = [speed_lC, speed_fC], ваш y превратится в список, и scikit это не понравится! не могли бы вы рассказать нам, что такое speed_lC, speed_fC? (используйте type(speed_lC))   -  person lorenzori    schedule 12.07.2019
comment
Привет! Да, как уже говорилось, две переменные, которые я использую, — это pandas DataFrames. Итак, используя type выходы: pandas.core.frame.DataFrame   -  person Hugobp    schedule 13.07.2019


Ответы (1)


используйте pandas.concat для объединения фреймов данных вместо:

y = pandas.concat([speed_lC, speed_fC])
person lorenzori    schedule 15.07.2019
comment
Спасибо, я пытался использовать pd.concat раньше, но не использовал обычные скобки... Теперь это работает отлично. Таким образом, использование numpy не очень хорошо при наличии этих размеров DataFrames! - person Hugobp; 15.07.2019