【发布时间】:2020-01-30 06:24:36
【问题描述】:
我正在尝试测试 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']。如果我在循环外使用相同的代码,它工作正常。为所需行为寻找简单的解决方案。
【问题讨论】:
标签: python pandas dictionary for-loop