簡體   English   中英

使用分類器列過濾熊貓中的數據框

[英]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]

謝謝你的幫助。 非常感激

rangeclf索引的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM