熊猫表查找

2024-01-29

我有一个熊猫查找表,看起来像这样

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

我有另一个看起来包含分数的熊猫数据框。我想通过查找查找表将“等级”分配给分数列。因此,根据分数落在下限和上限的区间,应从查找表中的该行分配等级。有没有一种方法可以在不输入一堆 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):

df['Score'].apply(lambda score: lookup['Grade'][(lookup['Lower_Boundary'] <= score) & (lookup['Upper_Boundary'] > score)].values[0])

解释:

对于给定的分数,以下是查找成绩的方法:

score = -75
match = (lookup['Lower_Boundary'] <= score) & (lookup['Upper_Boundary'] > score)
grade = lookup['Grade'][match]

这将返回一系列长度为 1 的序列。您可以通过以下方式获取其值:

grade.values[0]

你需要做的就是apply以上到分数栏。如果您想要单行,请使用lambda功能:

df['Score'].apply(lambda score: lookup['Grade'][(lookup['Lower_Boundary'] <= score) & (lookup['Upper_Boundary'] > score)].values[0])

否则以下内容会更具可读性:

def lookup_grade(score):
    match = (lookup['Lower_Boundary'] <= score) & (lookup['Upper_Boundary'] > score)
    grade = lookup['Grade'][match]
    return grade.values[0]

df['Score'].apply(lookup_grade)

这种方法还可以更轻松地处理未找到匹配项的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

熊猫表查找 的相关文章

随机推荐

  • 将十六进制值的行垂直按列转换为二进制

    我正在处理来自串行设备的数据 该设备以非常有趣的格式输出数据 该设备有一个 256x256 的像素阵列 而每个像素都有一个14 bit值 用移位寄存器读出 为了显示格式 我将对其进行说明 就像每个像素都有一个6 bit value Pixe
  • VBA - 导入带有特殊字符的bas模块

    我已经为 excel 模块 bas frx 和 frm 文件 实现了自动导入 版本控制 因此客户将始终获得最新版本的 VBA 脚本 解决方案是这样的 vba 脚本 在 Workbook Open 上 检查 github 存储库版本号是否相等
  • 如何一起使用 requireJS 和 jQuery?

    我想使用 requireJS 并且我正在使用 jQuery 我不想使用 requireJS 和 jQuery 的组合版本 因为我没有使用最新的 jQuery 版本 使用 requireJS 的最佳方式是什么 这也是我的确切问题 我还必须使用
  • 如何确定 Wix 中是否存在注册表项

    我想确定 Wix 中是否存在注册表项 我无法对该键中的值名称做出任何假设 但至少存在一个 未设置默认值 是否可以在不使用自定义操作的情况下检查密钥是否存在 以及可选地 是否有任何值 看看注册表搜索 使用样本
  • 在 VB.NET 中创建一个新线程

    我正在尝试使用匿名函数创建一个新线程 但我不断收到错误 这是我的代码 New Thread Function Do something here End Function Start 以下是我得到的错误 New 语法错误 结束功能 结束函数
  • iPhone SDK:如何检查用户输入的IP是否有效?

    我的 iPhone 应用程序包含多个对服务器的 http 请求 服务器的IP地址可以由用户输入 这样您就可以将应用程序与您自己的私人服务器结合使用 在发出请求之前 我总是检查输入的 IP 地址是否有效 我这样做 BOOL urlExists
  • Mandrill 发送电子邮件时出现问题:消息未发送:已排队

    我在使用 Mandrill 发送电子邮件时遇到问题 我创建了一个帐户和一个新模板 但是当我尝试发送该模板的测试时 即使我曾经发送过电子邮件 我也会收到以下消息 消息未发送 已排队 我为具有相同 pb 的人修复了此问题 我向 Mandrill
  • 无法停止为静态内容触发 ASP.NET 模块

    我在 ASP NET MVC 应用程序中有一个模块 该模块工作正常 但它会针对包括静态内容在内的每种类型的文件触发 即使我有
  • JavaScript 中的函数顺序

    我的问题是基于一本书中的例子 面向对象的 JavaScript https rads stackoverflow com amzn click com 1847194141 第 81 页 词汇范围 所以 我从这个例子中了解到 functio
  • Android Studio 4.1 中缺少 Logcat

    我最近在我的 Windows 机器上安装了 AS 我尝试在 Logcat 中查看我的日志 但无法找到 激活 Logcat 我尝试按照说明进行操作here https stackoverflow com questions 16817566
  • WPF DataGrid - 插入数据网格时突出显示新行

    我有一个绑定到 ObservableCollection 的数据网格 我想做的是在将新行添加到数据网格时 即 当将新对象插入到 ObservableCollection 中时 突出显示新行 我想在插入行时突出显示行 方法是最初更改背景颜色
  • 有没有办法使导航栏徽标响应?

    这是我使用 bootstrap 4 构建的网站 我对徽标有一个大问题 因为它在所有设备上保持相同的大小 我尝试过添加 img fluid 但是如果添加这个类 徽标在手机上会缩小很多 看起来就像一个小点 所以我删除了这个类 现在 在移动设备上
  • 通用 Promise 重试逻辑

    我试图弄清楚如何创建一个通用重试函数 该函数对于传递给它的任何承诺都会呈指数级回退 看起来除了几件事之外一切都正常 如果该函数在第一次尝试时解析 那么我会看到我的解析值 并且它会输出嘿 这是预期的 如果它在任何后续调用中解决 它不会注销嘿
  • 使用 yajl-objc 编码自定义类

    Summary 基于一些基准 http samsoff es posts updated iphone json benchmarks 我选择了yajl objc http github com gabriel yajl objc用于我的
  • android.view.WindowManager$BadTokenException 异常。有什么指针吗?

    我有两个 webview 为了从两个 webview 中删除通用功能 我创建了一个超类 其中包含超类中的所有方法 并在两个 webview 中使用它 有一次 当我创建对象并设置第一个 Web 视图中的变量时 Web 视图正确显示 当我按 返
  • Javascript 闭包/变量作用域问题 - 我知道它有效,但为什么?

    我用 JS 开发已经有一段时间了 虽然我知道下面的代码可以工作 但我不太明白why有用 在我看来 我在 testClosure 函数中定义了 testString 并且我期望该变量在 testClosure 函数完成时 消失 因为它是局部变
  • 创建属性设置器委托

    我创建了将属性 lambda 转换为委托的方法 public static Delegate MakeGetter
  • 在 C# 中通过 AWS.NET 从 S3 存储检索二进制数据

    我已经测试了适用于 NET 的 AWS 开发工具包中包含的大部分示例 它们都运行良好 我可以将对象 列表对象和删除对象放入存储桶中 但是 假设我删除了原始对象并想要同步本地丢失的那些文件 我想创建一个 GET 对象 按键 名称和原因桶 我可
  • 如何为Lua表添加前缀?

    我有一个lua文件 其内容为lua表如下 A A B A B C 0 问题是我想在上述每个语句之前添加前缀 XYZ 因此 解析之后数据库应该有这样的内容 XYZ A XYZ A B XYZ A B C 有任何想法吗 提前致谢 您可以使用以下
  • 熊猫表查找

    我有一个熊猫查找表 看起来像这样 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