Пример dataframe и tuplelist:
df = pd.DataFrame({'A':range(1,10), 'B':range(1,10), 'C':range(1,10)})
tuplelist=[('A', 2, 10), ('B', 0, 4),('C', 3, 5)]
Вместо работы с кортежами создайте из них словарь:
filters = {x[0]:x[1:] for x in tuplelist}
print(filters)
{'A': (5, 10), 'B': (0, 4), 'C': (10, 11)}
Вы можете использовать pd.cut
чтобы задать значения столбцов данных в кадре:
rows = np.asarray([~pd.cut(df[i], filters[i], retbins=False, include_lowest=True).isnull()
for i in filters.keys()]).all(axis = 0)
Используйте rows
в качестве логического индексатора df
:
df[rows]
A B C
2 3 3 3
3 4 4 4