我试图过滤出小尺寸的组,而filter函数抛出ValueError:不允许负尺寸。我不能发布我的代码,因为它太具体了,我不能用随机的一组数据重现这个问题。有人见过这个吗?我也看到过另一篇关于同样错误的帖子,但没有太大帮助
作为一个解决方案,我正在尝试用groupby和apply做同样的事情filter,但是它没有像预期的那样工作。有什么建议吗?你知道吗
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
示例代码的问题是
apply
在将数据帧放回一起时不知道如何处理None
。apply
函数每次都需要输出相同类型的对象。如果你返回pd.DataFrame()
而不是“无”,你应该得到你想要的东西。你知道吗相关问题 更多 >
编程相关推荐