Эквивалент ключевого слова" 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
а затем используйте его для фильтрации фрейма данных