pandas.core.groupby.DataFrameGroupBy.filter#

DataFrameGroupBy.filter(func, dropna=True, *args, **kwargs)[源代码]#

过滤掉不满足标准的组元素。

如果组不满足 func 指定的布尔标准,则会过滤掉来自该组的元素。

Parameters:
funcfunction

应用于每个组的标准。应返回 True 或 False。

dropnabool

删除不通过过滤的组。默认为 True;如果为 False,则评估为 False 的组将用 NaNs 填充。

Returns:
DataFrame

Notes

每个子 DataFrame 都被赋予 ‘name’ 属性,以防您需要知道您正在处理哪个组。

修改传入对象的函数可能会导致意外行为或错误,因此不受支持。有关详细信息,请参阅 使用用户定义函数 (UDF) 方法进行变异

Examples

>>> df = pd.DataFrame({'A' : ['foo', 'bar', 'foo', 'bar',
...                           'foo', 'bar'],
...                    'B' : [1, 2, 3, 4, 5, 6],
...                    'C' : [2.0, 5., 8., 1., 2., 9.]})
>>> grouped = df.groupby('A')
>>> grouped.filter(lambda x: x['B'].mean() > 3.)
     A  B    C
1  bar  2  5.0
3  bar  4  1.0
5  bar  6  9.0