Тепловые карты для попарного евклидова расстояния между 3 столбцами информационного кадра - PullRequest
0 голосов
/ 12 марта 2020

Я новичок в python. В настоящее время я изучаю тепловые карты и евклидовы расстояния. У меня есть образец файла ниже:

Образец демонстрационного файла

Что я пытался сделать: у меня есть 3 столбца в файле примера, а именно ['bush', 'gore', 'nade']. Я хочу рассчитать попарные расстояния между парами значений в каждой строке и построить результирующую матрицу в виде тепловой карты и обозначить оси. Вот мой код:

import pandas as pd
from sklearn import preprocessing
from sklearn.metrics.pairwise import euclidean_distances
%matplotlib inline

data = pd.read_csv("demo.csv",sep=',')
column_names=['bush', 'gore', 'nade']


#data1=data.iloc[:,list(data.columns[:,11:12]) + list(data.columns[14])]
data1=data.iloc[:,column_names]
X=data1.values
X_scaled = preprocessing.scale(X)
data1s = pd.DataFrame(X_scaled, index=data1.index, columns=data1.columns)
dists = euclidean_distances(data1s.sort_index().values)
plt.imshow(dists)

Я воспользовался помощью интернет-ресурсов, чтобы придумать этот код, но я не думаю, что делаю это правильно. Я получаю ошибку cannot perform reduce with flexible type. Пожалуйста, помогите.

Кроме того, если я хочу расширить это более чем на 3 столбца, как мне это сделать. Например, обобщите код, чтобы я мог его расширить, если бы мне пришлось составить тепловую карту, скажем, для 7 или 8 столбцов. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...