2次元のdictから隣接行列を生成する
やりたいこと
隣接行列を作りたい。
で、隣接行列の元データは2次元のdict型で保存されている。
例えば、ノードAとノードCからノードBへと接続されていおり、そのエッジの重みが1という状態を作りたい。
{ノードA: {ノードB: エッジの重み}, ノードC: {ノードB: エッジの重み}}
から
| ノードA | ノードB | ノードC |
------------------------------------------------------------------
ノードA | | 1 | |
ノードB | | | |
ノードC | | 1 | |
という行列が作りたいわけだ。
どう解決するか?
このstack overflow説明にあるように自分で実装してしまえば。。。いいのかもしれないが、もっとてっとり早い方法が実はある。
pandasでdictからdataframeを生成して、csvにでも書き出してしまえばいい。
from pandas import *
df = DataFrame(books).T.fillna(0)
でおkだ。