猿问

从聚合的数据框(Python)中删除异常值

我的原始数据帧看起来像这样,只有前几行...:


  categories  id products 

0          A   1       a       

1          B   1       a       

2          C   1       a       

3          A   1       b       

4          B   1       b       

5          A   2       c      

6          B   2       c  

我将其与以下代码聚合在一起:


df2 = df.groupby('id').products.nunique().reset_index().merge(

pd.crosstab(df.id, df.categories).reset_index()

然后是数据框,我也从DF中添加了n个离群值:


    id products A B C

0    1       2  2 2 1    

1    2       1  1 1 0    

2    3      50  1 1 30

现在,我尝试删除新DF中的异常值:


#remove outliners

del df2['id']

df2 = df2.loc[df2['products']<=20,[str(i) for i in df2.columns]]

然后我得到的是:


  products  A    B   C

0    2      NaN NaN NaN

1    1      NaN NaN NaN 

它删除了异常值,但是为什么我现在在categorie列中仅获得NaN?


慕标5832272
浏览 261回答 1
1回答

墨色风雨

df2&nbsp;=&nbsp;df2.loc[df2['products']&nbsp;<=&nbsp;20]
随时随地看视频慕课网APP

相关分类

Python
我要回答