我正在尝试执行groupby过滤器,它与本文档中的示例非常相似: pandas groupby filter
>>> 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
Run Code Online (Sandbox Code Playgroud)
我试图返回一个包含所有3列但只有2行的DataFrame.在按A列分组后,这两行包含列B的最小值.我尝试了以下代码行:
grouped.filter(lambda x: x['B'] == x['B'].min())
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我得到这个错误:
TypeError: filter function returned a Series, but expected a scalar bool
我试图返回的DataFrame应如下所示:
A B …Run Code Online (Sandbox Code Playgroud)