Создать маску bool из результатов фильтра в Pandas [duplicate]
На этот вопрос уже есть ответ здесь:
Выбор по сложным критериям из панд. DataFrame 3 ответаЯ знаю, как создать маску для фильтрации кадра данных при запросе одного столбца:
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
Я использую простую маску здесь:
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
У меня вопрос, как создать маску с несколькими столбцами? Так что, если я сделаю это:
data[data['value2'] == 'A' ][data['value'] > 4]
Это фильтры, как я и ожидал, но как мне создать маску bool из этого, как в моем другом примере? Я предоставил тестовые данные для этого, но я часто хочу создать маску для других типов данных, поэтому я ищу любые указатели, пожалуйста.