[英]How to make a matrix using index and the value in python?
我有一個數據集,它有兩列:
index Value
0 True
1 True
2 False
3 True
是否有可能獲得一個看起來像的矩陣
index 0 1 2 3
0 True True False True
1 True True False True
2 False False False False
3 True True False True
我試過pd.crosstab
,仍然無法獲得矩陣,有人可以幫忙嗎?
一種可能的方式:
m = np.tile(df['Value'], len(df)).reshape(-1, len(df)) * df[['Value']].values
out = pd.DataFrame(m)
print(out)
# Output
0 1 2 3
0 True True False True
1 True True False True
2 False False False False
3 True True False True
首先,使用to_numpy
將Value
列的值轉換為 numpy 數組。 然后通過使用[:,None]
創建一個額外的軸並計算按位和運算來利用 numpy 廣播:
vals = df['Value'].to_numpy()
res = pd.DataFrame(vals[:,None] & vals, index=df.index)
輸出:
>>> res
0 1 2 3
index
0 True True False True
1 True True False True
2 False False False False
3 True True False True
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.