Pandas数据帧过滤掉小尺寸的组

时间:2014-10-21 22:12:21

标签: python pandas

我正在尝试过滤掉小尺寸的组,并且过滤器函数会抛出ValueError:不允许使用负尺寸。我没有发布我的代码它太具体了,我不能用随机的数据集重现问题。有没有人碰到过这个?我已经看到了同一个错误的其他帖子,但它没有太大帮助

作为一种解决方法,我试图做同样的事情过滤器对groupby和apply应用但它不能按预期工作。有什么建议吗?

       dff = pd.DataFrame({'A': np.arange(8), 'B': list('aabbbbcc')})
       dff['C'] = np.arange(8)

       def f(x):
         if len(x)>2: 
           return x
         else:
          return None
       dff.groupby('B').apply(f)

       B
        a         A    B    C
        2  NaN  NaN  NaN
        3  NaN  NaN ...
        b       A  B  C
        2  2  b  2
        3  3  b  3
        4  4  b  4
        5 ...
        c         A    B    C
        2  NaN  NaN  NaN
        3  NaN  NaN ...
       dtype: object

1 个答案:

答案 0 :(得分:1)

示例代码的问题在于,apply在将数据帧重新组合在一起时,不知道如何处理None。您的apply函数每次都需要输出相同类型的对象。如果您返回pd.DataFrame()而不是“无”,则应该获得您正在寻找的内容。