我正在尝试过滤掉小尺寸的组,并且过滤器函数会抛出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
答案 0 :(得分:1)
示例代码的问题在于,apply
在将数据帧重新组合在一起时,不知道如何处理None
。您的apply
函数每次都需要输出相同类型的对象。如果您返回pd.DataFrame()
而不是“无”,则应该获得您正在寻找的内容。