当自变量列具有特定值时,从目标列中移除异常值

2024-04-20 02:10:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个如下所示的数据帧(单击下面的click):

df.head(10)

https://ibb.co/vqmrkXb

我想做的是,当day列的值等于6时,使用正态分布68-95-99.7规则从目标列(已占用的停车位)中删除异常值,例如,它指的是星期日(df['day']==6)。你知道吗

我尝试了以下代码:

df = df.mask((df['occupied_parking_spaces'] - df['occupied_parking_spaces'].mean()).abs() > 2 * df['occupied_parking_spaces'].std()).dropna()

这行代码从整个数据集中删除了异常值,不管是独立变量,但我只想从占用的\u停车\u spacs列中删除异常值,例如day值等于6。你知道吗

我能做的是创建一个不同的数据帧,我将为其删除异常值:

sunday_df = df.loc[df['day'] == 0]

sunday_df = sunday_df.mask((sunday_df['occupied_parking_spaces'] - sunday_df['occupied_parking_spaces'].mean()).abs() > 2 * sunday_df['occupied_parking_spaces'].std()).dropna()

但通过这样做,我将得到一周中每天的多个数据帧,我将不得不在最后连接,这是我不想做的事情,因为必须有一种方法在同一个数据帧内这样做。你知道吗

你能帮帮我吗?你知道吗


Tags: 数据代码dfmaskabsmeanheadspaces