Как я могу получить числа для корреляционной матрицы из профилирования Pandas

#pandas-profiling

#pandas-профилирование

Вопрос:

Мне действительно нравится тепловая карта, но мне нужны числа за тепловой картой (она же корреляционная матрица). Пример тепловой карты

Есть ли простой способ извлечь числа?

Ответ №1:

Это было немного сложно отследить, но, начиная с документации; в частности, из структуры отчета, затем копаясь в следующей функции get_correlation_items(сводка), а затем переходя к источнику и рассматривая его использование, мы переходим к этому вызову, который по существу перебирает каждый из типов корреляции в сводке,чтобы получить объект summary, мы можем найти следующее: если мы ищем вызывающего абонента, мы обнаруживаем, что это get_report_structure(summary), и если мы попытаемся найти, как получить summary аргумент, мы обнаружим, что это просто description_set свойство, как показано здесь.

Учитывая вышесказанное, теперь мы можем сделать следующее, используя версию 2.9.0:

 import numpy as np
import pandas as pd
from pandas_profiling import ProfileReport

df = pd.DataFrame(
    np.random.rand(100, 5),
    columns=["a", "b", "c", "d", "e"]
)

profile = ProfileReport(df, title="StackOverflow", explorative=True)

correlations = profile.description_set["correlations"]
print(correlations.keys())
  
 dict_keys(['pearson', 'spearman', 'kendall', 'phi_k'])
  

Чтобы увидеть конкретную корреляцию, выполните:

 correlations["phi_k"]["e"]
  
 a    0.000000
b    0.112446
c    0.289983
d    0.000000
e    1.000000
Name: e, dtype: float64
  

Комментарии:

1. Ссылка на образец ноутбука, похоже, нарушена