在另一个数据帧的特定行中查找一个数据帧的值

时间:2017-06-15 20:30:43

标签: pandas

我正在努力解决一些复杂的(对我来说)查找类型的问题。

我有一个如下所示的数据帧df1:

    Grade  Value
0     A     16
1     B     12
2     C      5

另一个数据框(df2),其中来自df1的一列(' Grade')中的值构成索引:

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

我一直试图为df1中的每一行写一些代码,查找与' Grade'相对应的行。在df2中,找到df2中的最小值大于' Value',并返回该列的名称。

E.g。对于第二行df1,它会查找索引' B'在df2:16中是大于12的最小值,因此它返回'第1层'。理想的输出是:

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

到目前为止我的新手,下载的Python-last-week周尝试如下,这会引发各种错误,甚至不会尝试返回列名。对不起,关于问题的微观问题:任何帮助表示赞赏!

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

1 个答案:

答案 0 :(得分:1)

df2.loc[df1.Grade].eq(df1.Value, 0).idxmax(1)