我有一个熊猫查找表,如下所示
Grade Lower_Boundary Upper_Boundary
1 -110 -96
2 -96 -91
3 -91 -85
4 -85 -81
5 -81 -77
6 -77 -72
7 -72 -68
8 -68 -63
9 -63 -58
10 -58 -54
11 -54 -50
12 -50 -46
13 -46 -42
14 -42 -38
15 -38 -34
16 -34 -28
17 -28 -18
18 -18 -11
19 -11 -11
20 -11 -9
我有另一个熊猫数据框,看起来包含分数。我想通过查找查找表将“Grade”分配给score列。因此,应根据得分落下的上下边界的间隔,从查找表中的该行分配等级。有没有一种方法可以在不输入一堆if-then-else语句的情况下完成呢?我在考虑excel的索引匹配。
Score Grade
-75 6
-75 6
-60 9
-66 8
-66 8
-98 1
-60 9
-82 4
-70 7
-60 9
-60 9
-60 9
-56 10
-70 7
-70 7
-70 7
-66 8
-56 10
-66 8
-66 8
一行解决方案(我称之为查找表
lookup
):说明:
对于给定的分数,以下是如何找到分数:
这返回一个长度为1的序列。可以通过以下方法获取其值:
你需要做的就是
apply
上面的score列。如果需要一行代码,请使用lambda
函数:否则,以下内容将更具可读性:
这种方法还可以使在找不到匹配项时更容易处理案例。
相关问题 更多 >
编程相关推荐