小编Day*_*ent的帖子

Py Polars:如何像 SQL 中一样使用“in”和“not in”进行过滤

如何实现 SQL 的 IN 和 NOT IN 的等效功能?

我有一个包含所需值的列表。这是场景:

import pandas as pd
import polars as pl
exclude_fruit = ["apple", "orange"]

df = pl.DataFrame(
    {
        "A": [1, 2, 3, 4, 5, 6],
        "fruits": ["banana", "banana", "apple", "apple", "banana", "orange"],
        "B": [5, 4, 3, 2, 1, 6],
        "cars": ["beetle", "audi", "beetle", "beetle", "beetle", "frog"],
        "optional": [28, 300, None, 2, -30, 949],
    }
)
df.filter(~pl.select("fruits").str.contains(exclude_fruit))
df.filter(~pl.select("fruits").to_pandas().isin(exclude_fruit))
df.filter(~pl.select("fruits").isin(exclude_fruit))
Run Code Online (Sandbox Code Playgroud)

python python-polars

17
推荐指数
1
解决办法
2万
查看次数

在 R 中混合 [tidyverse] 和 [data.table] 语法的危险?

我从混合tidyversedata.table语法中得到了一些非常奇怪的行为。对于上下文,我经常发现自己使用tidyverse语法,然后data.table在需要速度与需要代码可读性时添加管道。我知道 Hadley 正在开发一个快速使用tidyverse语法的新包data.table,但据我所知,它仍处于初期阶段,所以我还没有使用它。

有人愿意解释这里发生了什么吗?这对我来说非常可怕,因为我可能不假思索地做了数千次。

library(dplyr); library(data.table)
DT <-
  fread(
    "iso3c  country income
MOZ Mozambique  LIC
ZMB Zambia  LMIC
ALB Albania UMIC
MOZ Mozambique  LIC
ZMB Zambia  LMIC
ALB Albania UMIC
"
  )

codes <- c("ALB", "ZMB")

# now, what happens if I use a tidyverse function (distinct) and then
# convert back to data.table?
DT <- distinct(DT) %>% as.data.table()

# this works like normal
DT[iso3c %in% codes]
# …
Run Code Online (Sandbox Code Playgroud)

r dplyr data.table tidyverse

9
推荐指数
1
解决办法
177
查看次数

标签 统计

data.table ×1

dplyr ×1

python ×1

python-polars ×1

r ×1

tidyverse ×1