Я пытаюсь отфильтровать этот фрейм данных:
ID fallowDeer woodland fox rabbits
1 0.0 4.056649 2.210927 31.150451
2 0.0 2.267544 1.380185 38.631221
3 0.0 5.602904 1.201781 4.124286
4 0.0 7.377308 7.834358 25.911328
5 0.0 2.129115 1.564075 3.931565
6 0.0 5.988451 1.699852 32.915730
7 0.0 1.427553 3.586585 7.444735
8 0.0 9.857577 8.709137 34.004470
9 0.0 7.468365 1.317117 38.440278
10 0.0 3.902134 4.112038 22.427969
Чтобы сохранить только те строки, где каждый вид находится между минимальным и максимальным значениями, показанными ниже (это ряды):
Минимальные значения
fallowDeer 0
woodland 1
fox 3
rabbits 10
Максимальные значения
fallowDeer 0
woodland 4
fox 6
rabbits 20
Этот код работает:
accepted_simulations = df[(df['fallowDeer'] <= max_values['fallowDeer']) & (df['fallowDeer'] >= min_values['fallowDeer']) & (df['woodland'] <= max_values['woodland']) & (df['woodland'] >= min_values['woodland']) & (df['fox'] <= max_values['fox']) & (df['fox'] >= min_values['fox']) & (df['rabbits'] <= max_values['rabbits']) & (df['rabbits'] >= min_values['rabbits'])]
Однако я собираюсь добавить еще много видов / столбцов в будущем и хотел бы избежать необходимости вручную проверять каждый вид на минимальное / максимальное значение, как я сделал здесь. Есть ли способ быстро сравнить каждый вид с минимальным / максимальным значением и отфильтровать фрейм данных без необходимости вручную проверять каждый из них?