Выбор нескольких (соседних) строк условно

Я хотел бы вернуть строки, которые соответствуют определенному условию. Я могу сделать это для одной строки, но мне нужно это для нескольких строк вместе взятых. Например, «светло-зеленый» соответствует положительному значению «XYZ», а «всего»> 10, а «красный» - нет. Когда я объединяю соседний ряд или ряды, это делает => 'темно-зеленый'. Могу ли я добиться этого, пройдя по всем строкам и не возвращая повторяющиеся строки?

N = 1000

np.random.seed(0)

df = pd.DataFrame(
    {'X':np.random.uniform(-3,10,N),
     'Y':np.random.uniform(-3,10,N),
     'Z':np.random.uniform(-3,10,N),
    })

df['total'] = df.X + df.Y + df.Z

df.head(10)

РЕДАКТИРОВАТЬ;

Желаемый результат: «XYZ»> 0 и «всего»> 10

Ответы на вопрос(2)

Ваш ответ на вопрос