如果你的数据框中有多个列,并且希望删除至少一列中具有异常值的所有行,则以下表达式可以一口气做到这一点。
df = pd.Dataframe(np.random.randn(100, 3))from scipy import statsdf[(np.abs(stats.zscore(df)) < 3).all(axis=1)]
描述:
- 对于每列,首先要计算列中每个值相对于列均值和标准差的Z分数。
- 然后取Z分数的绝对值,因为方向无关紧要,只有方向低于阈值时才行。
- all(axis = 1)确保对于每一行,所有列均满足约束。
- 最后,此条件的结果用于索引数据帧。



