相关疑难解决方法(0)

py-datatable 'in' 运算符?

我无法in使用预定义的项目列表执行标准操作。我正在寻找做这样的事情:

# Construct a simple example frame
from datatable import *
df = Frame(V1=['A','B','C','D'], V2=[1,2,3,4])

# Filter frame to a list of items (THIS DOES NOT WORK)
items = ['A','B']
df[f.V1 in items,:]

Run Code Online (Sandbox Code Playgroud)

此示例导致错误:

TypeError: A boolean value cannot be used as a row selector

不幸的是,似乎没有用于in操作的内置对象。我想使用类似于%in%R 语言原生的运算符之类的东西。有没有什么方法可以在python中完成这个?

我可以通过使用多个“等于”运算符来采用这种方法,但是当您要考虑大量项目时,这很不方便:

df[(f.V1 == 'A') | (f.V1 == 'B'),:]
Run Code Online (Sandbox Code Playgroud)

数据表 0.10.1
蟒蛇 3.6

python datatable python-3.x py-datatable

7
推荐指数
2
解决办法
209
查看次数

根据是否在列表中过滤python数据表的行

我是使用 python 数据表的新手,这是我正在关注的教程

如何过滤掉某个列中的值包含在列表中的行?

基本上这是我正在使用的代码:

    import datatable as dt
    sfr = dt.fread(os.path.join(dirName, 'Results.csv'))

sfr
Out[25]: 
         |       ioid  itemtype  date       itemid           tid  value
-------- + ----------  --------  --------  -------  ------------  -------
       0 |          1         1  7-1-2022     9015           531   0.0283
       1 |          1         1  7-1-2022     9015           532   0.0071
       2 |          1         1  7-1-2022     9016           534   0.0065
       3 |          1         1  7-1-2022     9017          1018   0.0005
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行以下操作

ids = [9016, 9017]
sft[dt.f.itemid.isin(ids)]
Run Code Online (Sandbox Code Playgroud)

但是,我无法使语法起作用。

期望的输出是:

         |       ioid  itemtype  date       itemid           tid  value …
Run Code Online (Sandbox Code Playgroud)

python python-3.8 py-datatable

6
推荐指数
1
解决办法
84
查看次数

标签 统计

py-datatable ×2

python ×2

datatable ×1

python-3.8 ×1

python-3.x ×1