我有以下參考
corr = pd.DataFrame({'i':['a','b'],'a':[.1,.2],'b':[.2,.1]}).set_index('i')

我也有一些向量值。長度總是會改變,所以我只使用 6 來顯示我想要實作的目標。
vectors = pd.DataFrame({'val':['a','b','a','a','b']})
我想使用這些值來生成一個 5x5 矩陣“X”,這樣:

5x5 因為向量 len(vector) = 5
我能想到的最接近的是 map 函式,它只生成一列。
uj5u.com熱心網友回復:
DataFrame.reindex 兩次,一次用于列,一次用于行:
out = corr.reindex(vectors['val']).reindex(vectors['val'], axis=1)
請注意,雖然受支持,但不建議使用重復的列名。例如out['a']將回傳一個資料幀,而大多數情況下它回傳一個系列。
uj5u.com熱心網友回復:
我們可以同時使用DataFrame.reindex和使用indexandcolumns引數vectors["val"]
idx = vectors["val"] # vectors["val"].tolist() to avoid naming axes `val`.
corr.reindex(index=idx, columns=idx)
val a b a a a b
val
a 0.1 0.2 0.1 0.1 0.1 0.2
b 0.2 0.1 0.2 0.2 0.2 0.1
a 0.1 0.2 0.1 0.1 0.1 0.2
a 0.1 0.2 0.1 0.1 0.1 0.2
a 0.1 0.2 0.1 0.1 0.1 0.2
b 0.2 0.1 0.2 0.2 0.2 0.1
uj5u.com熱心網友回復:
DataFrame.reindex 兩次,一次用于列,一次用于行:
out = corr.reindex(vectors['val']).reindex(vectors['val'], axis=1)
雖然支持重復列名,但不推薦
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/345532.html
