簡體   English   中英

Python 等效於 R 運算符“%in%”

[英]Python equivalent of the R operator “%in%”

運算符中 this 的 Python 等價物是什么? 我試圖通過僅當行中的列在我的列表中找到值時才保留行來過濾 Pandas 數據庫。

我嘗試使用 any() 並且在這方面遇到了巨大的困難。

Pandas 與 R 文檔的比較在這里

s <- 0:4
s %in% c(2,4)

isin() 方法類似於 R %in% 運算符:

In [13]: s = pd.Series(np.arange(5),dtype=np.float32)

In [14]: s.isin([2, 4])
Out[14]: 
0    False
1    False
2     True
3    False
4     True
dtype: bool

FWIW:無需調用熊貓,這是在純 python 中使用for looplist compression的答案

x = [2, 3, 5] 
y = [1, 2, 3]

# for loop
for i in x: [].append(i in y)

Out: [True, True, False]


# list comprehension
[i in y for i in x]

Out: [True, True, False]

如果您只想使用沒有panads numpy (就像我的用例),那么您可以:

import numpy as np

x = np.array([1, 2, 3, 10])
y = np.array([10, 11, 2])
np.isin(y, x)

這相當於:

c(10, 11, 2) %in% c(1, 2, 3, 10)

請注意,最后一行僅適用於numpy >= 1.13.0 ,對於舊版本,您需要使用np.in1d

正如其他人所指出的, in基礎 Python 的運算符中運行良好。

myList = ["a00", "b000", "c0"]

"a00" in myList
# True

"a" in myList
# False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM