python - 使用熊猫提取字典指定的行
问题描述
我有一个大字典,其中每个键对应一个列表。例如
dictionary = {'1':[391,183,117,193,971],'2':[8817,38103,6163,173],'3':[8173,137,984,9173]}
我有一个总共有 1837391 行的数据框。我的数据框如下所示:
ID start end name
1 29 120 Peter
2 130 200 Sarah
3 10 20 Nikki
现在我想计算所有那些值落在每个键的开始和结束列分别指定的间隔内的行。
例如键1 117,183,193 落在区间内,所以它应该返回 3。因为 117 将在我的数据框的第 1 行找到,183 和 193 在第 2 行找到。我该如何实现?见解将不胜感激。
解决方案
使用 dict 理解
{
k: sum(1 for i in v if i >= df.start.min() and i <= df.end.max())
for k, v in dictionary.items()
}
输出
{'1': 3, '2': 1, '3': 1}
推荐阅读
- python-3.x - webdriver移动仿真python中的向下滑动功能
- typescript - 如何正确地期望从被监视的函数的 catch 块内部在 Jest 中引发错误?
- pytorch - Pytorch 和批处理
- javascript - 旧数据未被 vue 组件中的新用户输入覆盖
- ios - Flutter 如何查看文档和数据以及删除导入的包是否会减小大小?
- python - groupby 保留所有以前的字段
- html - 具有设置像素值的最大高度 - 它是 Hacky 还是必要的?
- sql - 在 SQL 链接中创建 URL
- perl - 从 LWP::UserAgent 到 Mojo::UserAgent 的匹配方法
- excel - 使用 shell 在 VBA 中运行 .exe