Я пытаюсь проверить, какие столбцы в df всегда имеют одинаковое значение, и удалить их из словаря. Однако, даже если x1 и x2 должны быть удалены, этого не происходит.
data = [[0.1, 0.3, 0.2, 0.3, 0.4], [0.1, 0.3, 0.3, 0.6, 0.5], [0.1, 0.3, 0.8, 0.4, 0.3]]
df = pd.DataFrame(data, columns = ['x1', 'x2', 'x3', 'y1', 'y2'])
vars1 = ["x1", "x2", "x3"]
vars2 = ["x1", "x3"]
vars_used = {"y1": vars1, "y2": vars2}
for ex_var in vars_used.get("y1"):
if df[ex_var].value_counts(normalize=True).values.max() > np.float(0.999):
vars_used.get("y1").remove(ex_var)
vars_used["y1"]
Вывод, который я получаю, - ['x2', 'x3'], а не ['x3']. Если я использую тот же код вне цикла, он работает нормально. Ищете простое решение для желаемого поведения.