2017-06-15 26 views
1

複雑な(私にとって)ルックアップタイプの問題が少し苦労しています。別のデータフレームの特定の行の1つのデータフレームからの値の検索

私はこのようになりますデータフレームDF1あります

Grade Value 
0  A  16 
1  B  12 
2  C  5 

そして、DF1から列(「グレード」)の1の値は、インデックスを構成する他のデータフレーム(DF2):

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

私はdf1の各行に対して、df2の 'Grade'に対応する行を検索し、 'Value'より大きいdf2の最小値を見つけ、その列。

など。 df1の2番目の行では、df2のインデックス 'B'の行を検索します。16は12より大きい最小値であるため、 'Tier 1'を返します。理想的な出力は次のようになります。エラーのすべての方法を投げているとも、列名を返すしようとしない、次のように、これまでされてい

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

私の初心者、ダウンロード・パイソン - 最後の週の試み、。申し訳ありませんが、質問の微妙なことについて:どのような助けに感謝!

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) 
関連する問題