如何在用PANAS替换离群值的同时用PANAS保持行的完整?

How to replace outliers with NaN while keeping row intact using pandas in python?(如何在用PANAS替换离群值的同时用PANAS保持行的完整?)

本文介绍了如何在用PANAS替换离群值的同时用PANAS保持行的完整?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理一个非常大的文件,需要为每列消除不同的离群值。

我已经能够找到离群值并用NaN替换它们,然而,它正在将整个行变成NaN。我肯定我错过了一些简单的东西,但我似乎找不到了。

import pandas as pd
import numpy as np
pd.set_option('display.max_rows', 100000)   
pd.set_option('display.max_columns', 10)
pd.set_option('display.width', 1000)

df = pd.read_excel('example sheet.xlsx')   

df = df.replace(df.loc[df['column 2']<=0] ,np.nan)
print(df)

如何只将一个值转换为NaN而不是整行?

谢谢

推荐答案

您可以执行以下操作:

df.mask(df <= 0, np.nan, axis=1)

无需迭代列。

但是,我建议您使用适当的统计数据来定义异常值,而不是<= 0

您可以使用quantilesLike:

df.mask(((df < df.quantile(0.05)) or (df > df.quantile(0.95))), np.nan, axis=1)

这篇关于如何在用PANAS替换离群值的同时用PANAS保持行的完整?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:如何在用PANAS替换离群值的同时用PANAS保持行的完整?

基础教程推荐