我正在尝试将一个DataFrame分成几组并删除小于最小大小的组(小异常值)。
以下是我尝试过的方法:
df.groupby(['A']).filter(lambda x: x.count() > min_size)
df.groupby(['A']).filter(lambda x: x.size() > min_size)
df.groupby(['A']).filter(lambda x: x['A'].count() > min_size)
df.groupby(['A']).filter(lambda x: x['A'].size() > min_size)
但是这些方法要么会抛出异常,要么返回的表格与我期望的不同。我只想过滤数据,而不是计算新的表格。
filter
实际上返回的是原始 DataFrame(而不是分组后的 DataFrame)。因此,获取大小大于 N 的组的正确方法是df.groupby('A').filter(lambda x: len(x) > N).groupby('A')
。 - Caleb Jares