首页 > 解决方案 > 如何在 siuba python 包中编写相当于 R 的 %in%?

问题描述

我第一次尝试使用 siubapython

疑问:如何使用siuba. 我的意思是如何在 siuba python 代码中编写%in% :

R当量:

df %>% filter(Country %in% c('Germany','France','Spain'))

Python siuba 尝试

country_list = ['Germany','France','Spain']

df >> filter(_.Country %in% country_list )

这是一件简单的事情,但到目前为止我的尝试没有奏效,也无法在谷歌上找到它。

标签: pythonsiuba

解决方案


siubapandas以自己的语法包装操作。

pandas根据值列表过滤值的操作是isin,其siuba语法如下:

country_list = ['Germany', 'France', 'Spain']
df >> filter(_.Country.isin(country_list))

示例程序:

import pandas as pd
from siuba import filter, _

df = pd.DataFrame({'Country': ['Germany', 'France', 'Spain', 'Portugal']})

country_list = ['Germany', 'France', 'Spain']
df >> filter(_.Country.isin(country_list))

df

    Country
0   Germany
1    France
2     Spain
3  Portugal

After filter

   Country
0  Germany
1   France
2    Spain

推荐阅读