[英]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 loop
和list 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.