我認為之前應該問過這個問題,但是使用關鍵字我找不到這個簡單問題的答案。
我有一個資料框 df 和一個分類器輸出 clf。對于資料幀的所有行,我希望輸出是該行的第 n 個元素,由分類器的第 n 個元素指定。所以輸出基本上是 [df.iloc[0,1], df.iloc[1,0], df.iloc[2,2],其中 [1,0,2] 是 clf,分類器
import pandas as pd
data = {'zero':[1,2,3], 'one':[4,5,6], 'two':[7,8,9]}
df = pd.DataFrame(data)
clf = [1,0,2]
output = [4,2,9]
謝謝你的幫助。非常感激
uj5u.com熱心網友回復:
通過索引numpy的解決方案range,并clf為:
output = df.to_numpy()[range(len(df)), clf].tolist()
print (output)
[4, 2, 9]
uj5u.com熱心網友回復:
嘗試 :
print([df.iloc[i, j] for i, j in enumerate(clf)])
[4, 2, 9]
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/312988.html
