[英]Using a classifier column to filter dataframe in pandas
我認為之前應該問過這個問題,但是使用關鍵字我找不到這個簡單問題的答案。
我有一個數據框 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]
謝謝你的幫助。 非常感激
按range
和clf
索引的 Numpy 解決方案是:
output = df.to_numpy()[range(len(df)), clf].tolist()
print (output)
[4, 2, 9]
嘗試 :
print([df.iloc[i, j] for i, j in enumerate(clf)])
[4, 2, 9]
你可以使用 np.diagonal
np.diagonal(df.iloc[:,clf])
輸出:
array([4, 2, 9])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.