我正在努力解决一些复杂的(对我来说)查找类型的问题。
我有一个如下所示的数据帧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]])
答案 0 :(得分:1)
df2.loc[df1.Grade].eq(df1.Value, 0).idxmax(1)