фильтрация данных pandas dataframe

Как сохранить два условия чтобы значения из списка удовлетворяли условию sums>50000, а остальные значения не из списка условию sums>10000 , в одном датафрейме?

import pandas as pd
b = ['sol', 'doge', 'axs']
res = {'para': ['sol', 'sol', 'doge', 'doge', 'pepe'], 'sums': [10000, 60000, 10001, 
51000, 10001]}
df = pd.DataFrame(res).query('sums>10000 &  @b in para & sums> 50000')
print(df)

результат должен быть такой

para      sums
1   sol  60000
3  doge  51000
4  pepe  10001

Ответы (1 шт):

Автор решения: CrazyElf

Нужно записать условия, которые должны выполняться одновременно, через И, а которые должны выполняться альтернативно - через ИЛИ. При этом у И приоритет выше, а у in и not ещё выше, поэтому скобки даже и не нужны:

df = pd.DataFrame(res).query('sums>10000 & not @b in para | sums > 50000 & @b in para')
→ Ссылка