Вынос переменных/фильтров в отдельный файл в python
В основном файле перебираю файлы с данными и для каждого создаю dataframe dfmin. Далее произвожу фильтрацию по условию и вывожу результат. Проблема в том, что фильтров много и условия у них большие. Пример фильтра:
Filter_1 = (dfmin.iloc[-1, 3] > dfmin.iloc[-2, 3] and
dfmin.iloc[-1, 5] > dfmin.iloc[-2, 2] and
dfmin.iloc[-2, 3] > dfmin.iloc[-3, 3] and
dfmin.iloc[-2, 5] > dfmin.iloc[-3, 2] and
dfmin.iloc[-3, 3] > dfmin.iloc[-4, 3] and
dfmin.iloc[-3, 5] > dfmin.iloc[-4, 2] and
dfmin.iloc[-4, 3] > dfmin.iloc[-5, 3] and
dfmin.iloc[-4, 5] > dfmin.iloc[-5, 2] and
dfmin.iloc[-5, 5] >= dfmin.iloc[-6, 5])
Поэтому хочу вывести все фильтры в качестве переменных в отдельный файл filters.py и потом только импортировать их в основной. Но загвоздка в том, что в файле filters.py dfmin не определен. Каким образом можно вывести фильтры в отдельный файл и импортировать их в качестве переменных?
Ответы (1 шт):
Автор решения: insolor
→ Ссылка
Можно сделать функцию, которая возвращает фильтр:
def filter_1(df):
return (df.iloc[-1, 3] > df.iloc[-2, 3] and
df.iloc[-1, 5] > df.iloc[-2, 2] and
df.iloc[-2, 3] > df.iloc[-3, 3] and
df.iloc[-2, 5] > df.iloc[-3, 2] and
df.iloc[-3, 3] > df.iloc[-4, 3] and
df.iloc[-3, 5] > df.iloc[-4, 2] and
df.iloc[-4, 3] > df.iloc[-5, 3] and
df.iloc[-4, 5] > df.iloc[-5, 2] and
df.iloc[-5, 5] >= df.iloc[-6, 5])
В месте где нужен фильтр:
from filters import filter_1
...
Filter_1 = filter_1(dfmin)