Как получить связанные функции в списке с определенным форматом? - PullRequest
2 голосов
/ 10 июля 2019

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

# Iris Dataset
features = ['sepal_length','sepal_width','petal_length','petal_width','class']
data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data",\
                           header = None,\
                           names = features)
correlation = data.corr()
c = correlation.where(np.triu(np.ones(correlation.shape),k=1).astype(np.bool)).stack().sort_values(ascending = False)
highest = c[c>0.5]
print(highest)
print(highest.index)

Вывод вышеприведенного фрагмента:

petal_length  petal_width     0.962757
sepal_length  petal_length    0.871754
              petal_width     0.817954
dtype: float64
MultiIndex(levels=[['sepal_length', 'sepal_width', 'petal_length', 'petal_width'], ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']],
           labels=[[2, 0, 0], [3, 2, 3]])

Есть ли возможность преобразовать вывод серии 'наивысший' в список в формате, указанном ниже?

list = [['petal_length','petal_width',0.962757],['sepal_length','petal_length',0.871754]['sepal_length','petal_width',0.817954]]

С точки зрения непрофессионала, мне нужны индексные столбцы (оба столбца) в списке из серии.

Я попробовал это, и это работает.но мне нужен список, как указано выше:

length = highest.shape[0]
list = []
for i in range(length):
    list.append(highest.index[i])
print('list =',list)

Вывод:

list = [('petal_length', 'petal_width'), ('sepal_length', 'petal_length'), ('sepal_length', 'petal_width')]

Заранее спасибо.

1 Ответ

2 голосов
/ 10 июля 2019

Да, используйте:

highest.reset_index().values.tolist()

Выход:

[['petal_length', 'petal_width', 0.9627570970509667],
 ['sepal_length', 'petal_length', 0.8717541573048719],
 ['sepal_length', 'petal_width', 0.8179536333691635]]
...