我的原始数据帧看起来像这样,只有前几行...: 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 C0 1 2 2 2 1 1 2 1 1 1 0 2 3 50 1 1 30现在,我尝试删除新DF中的异常值:#remove outlinersdel df2['id']df2 = df2.loc[df2['products']<=20,[str(i) for i in df2.columns]]然后我得到的是: products A B C0 2 NaN NaN NaN1 1 NaN NaN NaN 它删除了异常值,但是为什么我现在在categorie列中仅获得NaN?
添加回答
举报
0/150
提交
取消