2017-06-15 58 views
1

我正在努力處理複雜(對我)查找類型問題。從另一個數據幀的特定行中的一個數據幀查找值

我有一個數據幀DF1,看起來像這樣:

Grade Value 
0  A  16 
1  B  12 
2  C  5 

而另一數據框(DF2),其中從DF1形式的列(「成績」)的一個值的指數:

 Tier 1 Tier 2 Tier 3 
A  20  17  10 
B  16  11  3 
C  7  6  2 

我一直在試圖寫一些代碼,對於df1中的每一行,查找與df2中的'Grade'相對應的行,查找df2中的最大值大於'Value',並返回該欄。

E.g.對於df1的第二行,它在df2中查找具有索引'B'的行:16是大於12的最小值,因此它返回'第1層'。理想的輸出將是:

Grade Value Tier 
0  A  16 Tier 2 
1  B  12 Tier 1 
2  C  5 Tier 2 

我的新手,下載-Python的最後一週嘗試至今一直如下,它扔了錯誤的所有方式和甚至沒有嘗試返回列名。對不起,還有關於這個問題的微觀性:任何幫助表示讚賞!

for i, row in input_df1.iterrows(): 
    Tier = np.argmin(df1['Value']<df2.loc[row,0:df2.shape[1]]) 

回答

1
df2.loc[df1.Grade].eq(df1.Value, 0).idxmax(1) 
相關問題