Выбор столбца через iloc/loc

Подскажите, пожалуйста, есть датафрейм с метриками: введите сюда описание изображения low - это 25-й квантиль, up - 75-й квантиль. Я создал список с метриками из датасета и хочу написать функцию, которая бы проходилась по каждой метрике из датасета и присваивала ей значения квантилей. введите сюда описание изображения Но с текущим кодом получаю ошибку: too many indexers. Пример кода:

metric_list = feed[['users', 'views', 'likes', 'ctr']]
for metric in metric_list:
    q_25 = now_df.iloc[:, now_df.columns.str.contains('low.*'), metric].iloc[0]
    q_75 = now_df.iloc[:, now_df.columns.str.contains('up.*'), metric].iloc[0]
    iqr = q_75 - q_25
    if now_df.loc[:, (metric, metric)].iloc[0] < q_25 - a * iqr or info_current.loc[:, (metric, metric)].iloc[0] > q_75 + a * iqr:

Ответы (1 шт):

Автор решения: MaxU

Чтобы выбрать все столбцы, наименования которых начинаются с "low_" и с "up_":

q_25 = now_df.filter(regex=r"^low_")
q_75 = now_df.filter(regex=r"^up_")
→ Ссылка