例如,我有一個像 csv 檔案這樣的資料:
x(col) y(row) Value
0 0 5
3 1 10
2 2 2
1 3 6
輸出:
[[5,0,0,0],
[0,10,0,0],
[0, 0,2,0],
[0, 0,0,6]]
uj5u.com熱心網友回復:
您可以使用pivot_table:
a = (df
.pivot_table(index='y(row)', columns='x(col)',
values='Value', fill_value=0)
.reindex(index=range(df['y(row)'].max() 1),
columns=range(df['x(col)'].max() 1))
.to_numpy()
)
或 numpy 索引:
a = np.zeros((df['y(row)'].max() 1, df['y(row)'].max() 1), dtype=df['Value'].dtype)
a[df['y(row)'], df['x(col)']] = df['Value']
print(a)
輸出:
array([[ 5, 0, 0, 0],
[ 0, 0, 0, 10],
[ 0, 0, 2, 0],
[ 0, 6, 0, 0]])
uj5u.com熱心網友回復:
使用 numpy 函式 diag 您可以從 pandas 資料框列創建對角矩陣(串列串列)。
import pandas as pd
import numpy as np
df = pd.read_csv('data.csv')
np.diag(df.Value)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/519633.html
標籤:Python熊猫麻木的
