在pandas中等效"in"关键字或子查询

Rob*_*inL 8 python pandas

我有一个Series对象(让我们调用它MySeries),它包含一个整数列表.

我还有一个单独的数据帧(比如说MyDataFrame),其中包含一个名为的列/字段MyField.

我想选择的所有记录MyDataFrame,其中值MyField是在MySeries

等效的SQL将是:

Select * from MyDataFrame 
where MyField in 
    (select * from MySeries)
Run Code Online (Sandbox Code Playgroud)

谁能建议最好的方法呢?

非常感谢您的帮助.

Rom*_*kar 8

你可以使用isin()函数:

>>> df = pd.DataFrame({'A':[1,2,3,4,5], 'B':list('ABCDE')})
>>> f = pd.Series([1,2])
>>> df[df['A'].isin(f)]
   A  B
0  1  A
1  2  B
Run Code Online (Sandbox Code Playgroud)

所以,首先你得到fiter系列:

>>> df['A'].isin(f)
0     True
1     True
2    False
3    False
4    False
Run Code Online (Sandbox Code Playgroud)

然后使用它来过滤您的DataFrame