如何在Python的siuba包中实现R语言%in%运算符的等效功能
siuba实现多值匹配筛选的方法
Python没有内置%in%运算符,siuba直接复用pandas原生的isin()方法即可实现R %in%的完全等效效果,正确写法如下:
from siuba import filter, _ country_list = ['Germany','France','Spain'] df >> filter(_.Country.isin(country_list))
- 上述写法和你给出的R代码筛选逻辑完全一致,
_.Country在siuba语法中代指数据框的Country列,直接调用pandas列对象的isin()方法传入目标列表即可完成多值匹配 - 如果需要实现反向筛选(即匹配不在列表内的行),只需在表达式前加波浪号
~即可:
# 筛选Country不在country_list内的所有行 df >> filter(~_.Country.isin(country_list))
内容的提问来源于stack exchange,提问作者ViSa
相关产品推荐
相关产品推荐

