ネストされた「2D」ディクショナリを Pandas DataFrame に変換することに関する質問への回答を見ました。それは私の問題の解決策ですが、ネストされた辞書を生成する中間ステップをスキップできるかどうか疑問に思っていました。私の入力 input.txt
が次のようになっているとしましょう:
A B 1
A C 2
B C 3
中間のネストされた辞書を生成することなく、Pandas または Numpy のいずれかを使用して、それを次の対称行列に変換できますか?
A B C
A 0 1 2
B 1 0 3
C 2 3 0
作成を避けたいネストされた辞書は次のようになります。
d = {'A':{'B':1,'C':2},'B':{'C':3}}
「マルチインデックスを使用したインデックスの読み取り」に関するIOツールのドキュメントを読んだ後、これを試しました:
import pandas as pd
df = pd.read_csv('input.txt', sep=' ', index_col=[0,1], header=None)
しかし、次のようにすると、2D ヒート マップが表示されません。
import matplotlib.pyplot as plt
plt.pcolor(df)
plt.imshow()