我有一個索引串列:[0,0,0,3,1,0,4,2,1] 和一個資料框(這只是一個例子,真正的資料框更大......):
snr freq snr ... snr freq freq_ref
0 111.796861 400.003168 116.805099 ... 123.952201 400.046262 400.00
1 111.800587 400.010109 117.194605 ... 124.033467 400.083761 400.05
2 111.636656 400.012101 117.654265 ... 124.155229 400.117228 400.10
3 111.839271 400.031985 118.009703 ... 124.208280 400.192227 400.15
4 112.162853 400.096895 118.196040 ... 124.055698 400.218755 400.20
我想根據索引串列獲取 snr 值。每個索引是一列中的 1 個 snr 值:第一個索引是第一個 snr 列,第二個索引是第二個 snr 列,第三個是第三列。第 4 個索引又是第 1 個 snr 列。
輸出應該是:
snr snr snr
0 111.796861 116.805099 123.952201
1 111.839271 117.194605 123.952201
2 112.162853 117.654265 124.033467
有任何想法嗎?
謝謝
uj5u.com熱心網友回復:
您可以先將串列重塑為二維陣列,然后在 numpy 中進行索引 - 選擇后需要 3 列,df['snr']并且需要串列中的數字值len(a) == 3 * len(df.index):
L = [0,0,0,3,1,0,4,2,1]
a = np.array(L).reshape(-1,3)
df = pd.DataFrame(df['snr'].to_numpy()[a, np.arange(a.shape[1])])
print (df)
0 1 2
0 111.796861 116.805099 123.952201
1 111.839271 117.194605 123.952201
2 112.162853 117.654265 124.033467
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/453424.html
上一篇:如何在python中讀取csv檔案并回傳外部表查詢?
下一篇:將串列格式化為CSV的列
