如何在用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
。
您可以使用quantiles
Like:
df.mask(((df < df.quantile(0.05)) or (df > df.quantile(0.95))), np.nan, axis=1)
相关文章