Python 删除单个列中发现的异常值数据集的整行

Python 删除单个列中发现的异常值数据集的整行,python,pandas,dataframe,outliers,Python,Pandas,Dataframe,Outliers,我目前正在尝试使用中位数绝对偏差方法从数据集中删除异常值 为此,我按照中@tanemaki给出的说明进行操作,它允许删除至少包含一个离群值的整行 在我链接的帖子中,有人问了同样的问题,但没有得到回答 问题是我只希望在单个列中搜索异常值 例如,我的数据框看起来像: 温度日期 1 24.72 2.3 2 25.76 4.6 3 25.42 7.0 4 4

我目前正在尝试使用中位数绝对偏差方法从数据集中删除异常值

为此,我按照中@tanemaki给出的说明进行操作,它允许删除至少包含一个离群值的整行

在我链接的帖子中,有人问了同样的问题,但没有得到回答

问题是我只希望在单个列中搜索异常值

例如,我的数据框看起来像:


温度日期
1        24.72        2.3        
2        25.76        4.6        
3        25.42        7.0        
4        40.31        9.3        
5        26.21       15.6
6        26.59       17.9        
例如,数据中有两个“异常”:

  • 第[4]行中的温度值
  • 第[5]行中的日期值
因此,我想要的是离群值函数只“注意”温度列中的异常,并删除其对应行。

我使用的异常值代码是:

df=pd.read_excel(r'/home/.../myfile.xlsx')
from scipy import stats
df[pd.isnull(df)]=0
dfn=df[(np.abs(stats.zscore(df))<4).all(axis=1)] #@taneski
print(dfn)
如果我没有传达我的信息,所需的输出将是:


温度日期
1        24.72        2.3        
2        25.76        4.6        
3        25.42        7.0  
5        26.21       15.6         
6        26.59       17.9        

任何指点都会大有帮助。谢谢

您始终可以将
stats.zscore
操作仅限于
Temperature
列,而不是整个
df
。也许像这样:

In [573]: dfn = df[(np.abs(stats.zscore(df['Temperature']))<4)]                                                                                                                                             

In [574]: dfn                                                                                                                                                                                               
Out[574]: 
   Temperature  Date
1        24.72   2.3
2        25.76   4.6
3        25.42   7.0
5        26.21  15.6
6        26.59  17.9

In[573]:dfn=df[(np.abs(stats.zscore(df['Temperature']))目前,您正在计算整个数据帧的zscore,然后用这些计算出的分数过滤数据帧;您要做的就是将相同的想法应用于一列

而不是


dfn=df[(np.abs(stats.zscore(df))您如何做同样的事情,但是在为两列而不是一列查找异常值的基础上?我尝试了(['Temperature'],['Date']),但没有运气。谢谢!您可以这样做:
df[(df['Temperature']<4)&df['Date'='2020-05-20')]
。这将基于这两个条件创建数据框。原始答案中的解决方案是否取决于具体情况或其他情况?我正在尝试将其用于另一个列数较高且不起作用的电子表格(我编辑了带有此问题的帖子)你的答案中的解决方案是有条件的还是有条件的?我正在尝试将它用于另一个列数较多的电子表格,但它不起作用(我编辑了带有该问题的帖子)