t = ibis.memtable({'col0': [-2, -5, -1, 0, 1, 8, 7], 'col1': [0, -2, 4, 5, 6, 8, 7]}). 我想找到col 0是col 1中任何值的所有行.

在SQL中,我可能会这样做:

SELECT
  *
FROM
  t
WHERE
  col0 = ANY(SELECT col1 FROM t)

(或ANY_VALUE)

ANYANY_VALUE是否有列表达或ibis方法?还是变通办法?

我试图查看文档,但没有给出答案.

推荐答案

您可以使用我们稍微专业化的.any()版本和view()版本来表达这种计算,以确保您正在比较的列都针对搜索列的每个值进行完整扫描:

In [17]: from ibis.interactive import *

In [18]: t = ibis.memtable({"a": [1, 2, 3, 4, 5, 6], "b": [3, 4, 5, 6, 1, 2]})

In [19]: t[(t.a > t.view().b).any()]
Out[19]:
┏━━━━━━━┳━━━━━━━┓
┃ a     ┃ b     ┃
┡━━━━━━━╇━━━━━━━┩
│ int64 │ int64 │
├───────┼───────┤
│     5 │     1 │
│     2 │     4 │
│     4 │     6 │
│     3 │     5 │
│     6 │     2 │
└───────┴───────┘

Python相关问答推荐

错误:找不到TensorFlow / Cygwin的匹配分布

将数组操作转化为纯numpy方法

重命名变量并使用载体中的字符串存储 Select 该变量

不同数据类型的Python成员变量不会在具有相同优先级的不同线程中更新

PyTorch卷积自动编码器,输出维度与输入不同

保留包含pandas pandras中文本的列

使用Python Cerberus初始化一个循环数据 struct (例如树)(v1.3.5)

使用索引列表列表对列进行切片并获取行方向的向量长度

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

Pandas - groupby字符串字段并按时间范围 Select

在Python中管理打开对话框

为什么默认情况下所有Python类都是可调用的?

两个pandas的平均值按元素的结果串接元素.为什么?

基于索引值的Pandas DataFrame条件填充

Pre—Commit MyPy无法禁用非错误消息

在ubuntu上安装dlib时出错

如何在表中添加重复的列?

如何使用Pandas DataFrame按日期和项目汇总计数作为列标题

无法连接到Keycloat服务器

Python Pandas获取层次路径直到顶层管理