Python - Как преобразовать матрицу (сделанную из панд) в список? - PullRequest
0 голосов
/ 23 октября 2018

Я создал сходство с jaccard (см. Этот пост-> Как вычислить сходство с jaccard из кадра данных pandas )

            Unnamed    A     B      C    D     
 Unnamed       1      0.05  0.05  0.05  0.05  
    A        0.05      1    0.99  0.99  0.99  
    B        0.05   0.99     1    0.99  0.99  
    C        0.05   0.99    0.99    1   0.99  
    D        0.05   0.99    0.99  0.99   1    

матрица, показанная выше, также относится креферентный пост.

мой вопрос, я хотел бы знать, как преобразовать эту матрицу в пару или список?потому что я буду использовать данные в виде списка или пары для создания сети

я ожидал увидеть результат как

([unnamed, unnamed], 1)
([unnamed, A], 0.05)
([unnamed, B], 0.05)
([unnamed, C], 0.05)
([unnamed, D], 0.05
([A, unnamed], 0.05)
([A,A], 1)
([A,B], 0.99)
([A,C], 0.99)
([A,D], 0.99)
.
.
.
([D,Unnamed], 0.05)
([D,A], 0.99)
([D,B], 0.99)
([D,C], 0.99)
([D,D], 1)

спасибо заранее на

1 Ответ

0 голосов
/ 23 октября 2018

Использование

In [91]: df.stack().to_dict()
Out[91]:
{('Unnamed', 'Unnamed'): 1.0,
 ('Unnamed', 'A'): 0.05,
 ('Unnamed', 'B'): 0.05,
 ('Unnamed', 'C'): 0.05,
 ('Unnamed', 'D'): 0.05,
 ('A', 'Unnamed'): 0.05,
 ('A', 'A'): 1.0,
 ('A', 'B'): 0.99,
 ('A', 'C'): 0.99,
 ('A', 'D'): 0.99,
 ('B', 'Unnamed'): 0.05,
 ('B', 'A'): 0.99,
 ('B', 'B'): 1.0,
 ('B', 'C'): 0.99,
 ('B', 'D'): 0.99,
 ('C', 'Unnamed'): 0.05,
 ('C', 'A'): 0.99,
 ('C', 'B'): 0.99,
 ('C', 'C'): 1.0,
 ('C', 'D'): 0.99,
 ('D', 'Unnamed'): 0.05,
 ('D', 'A'): 0.99,
 ('D', 'B'): 0.99,
 ('D', 'C'): 0.99,
 ('D', 'D'): 1.0}

Или

In [98]: [(list(i), v) for i, v in df.stack().iteritems()]
Out[98]:
[(['Unnamed', 'Unnamed'], 1.0),
 (['Unnamed', 'A'], 0.05),
 (['Unnamed', 'B'], 0.05),
 (['Unnamed', 'C'], 0.05),
 (['Unnamed', 'D'], 0.05),
 (['A', 'Unnamed'], 0.05),
 (['A', 'A'], 1.0),
 (['A', 'B'], 0.99),
 (['A', 'C'], 0.99),
 (['A', 'D'], 0.99),
 (['B', 'Unnamed'], 0.05),
 (['B', 'A'], 0.99),
 (['B', 'B'], 1.0),
 (['B', 'C'], 0.99),
 (['B', 'D'], 0.99),
 (['C', 'Unnamed'], 0.05),
 (['C', 'A'], 0.99),
 (['C', 'B'], 0.99),
 (['C', 'C'], 1.0),
 (['C', 'D'], 0.99),
 (['D', 'Unnamed'], 0.05),
 (['D', 'A'], 0.99),
 (['D', 'B'], 0.99),
 (['D', 'C'], 0.99),
 (['D', 'D'], 1.0)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...