Crear máscara bool a partir de resultados de filtro en Pandas [duplicado]

Esta pregunta ya tiene una respuesta aquí:

Selección con criterios complejos de pandas.DataFrame 3 respuestas

Sé cómo crear una máscara para filtrar un marco de datos al consultar una sola columna:

import pandas as pd
import datetime
index = pd.date_range('2013-1-1',periods=100,freq='30Min')
data = pd.DataFrame(data=list(range(100)), columns=['value'], index=index)
data['value2'] = 'A'
data['value2'].loc[0:10] = 'B'

data

    value   value2
2013-01-01 00:00:00 0   B
2013-01-01 00:30:00 1   B
2013-01-01 01:00:00 2   B
2013-01-01 01:30:00 3   B
2013-01-01 02:00:00 4   B
2013-01-01 02:30:00 5   B
2013-01-01 03:00:00 6   B

Yo uso una máscara simple aquí:

mask = data['value'] > 4
data[mask]
    value   value2
2013-01-01 02:30:00 5   B
2013-01-01 03:00:00 6   B
2013-01-01 03:30:00 7   B
2013-01-01 04:00:00 8   B
2013-01-01 04:30:00 9   B
2013-01-01 05:00:00 10  A

Mi pregunta es cómo crear una máscara con varias columnas. Entonces si hago esto:

data[data['value2'] == 'A' ][data['value'] > 4]

Esto se filtra como era de esperar, pero ¿cómo puedo crear una máscara bool a partir de esto como en mi otro ejemplo? He proporcionado los datos de prueba para esto, pero a menudo quiero crear una máscara en otros tipos de datos, así que estoy buscando cualquier puntero, por favor.

Respuestas a la pregunta(1)

Su respuesta a la pregunta