Использование
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)]