Эквивалент ключевого слова" in " или подзапроса в pandas

у меня есть объект серии (назовем это MySeries), который содержит список целых чисел.

у меня также есть отдельный фрейм данных (скажем MyDataFrame), который включает столбец/поле под названием MyField.

Я хочу выбрать все записи из MyDataFrame где значение MyField - в MySeries

эквивалентный SQL будет:

Select * from MyDataFrame 
where MyField in 
    (select * from MySeries)

кто-нибудь может предложить лучший способ сделать это?

Спасибо за любую помощь.

1 ответов


можно использовать 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

Итак, сначала вы получаете серию fiter:

>>> df['A'].isin(f)
0     True
1     True
2    False
3    False
4    False

а затем используйте его для фильтрации фрейма данных