2017-06-15 61 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) 
相关问题