Выбор столбца через 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_")