如何在数据帧中查找组中具有最大值的行

2024-10-04 03:28:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个这样的数据框:

^{tb1}$
df = pd.DataFrame({'dmc1': ['d1', 'd1', 'd1', 'd1','d2', 'd2', 'd2', 'd2'],
            'par': ['p1', 'p2', 'p3', 'p3', 'p1', 'p2', 'p2', 'p3'],
            'dummy': ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'],
            'occur': ['1', '1', '1', '2', '1', '1', '2', '1']})

我想按“dmc1”和“par”对这个表进行分组,并在每个组中找到“发生”值最高的成员,并只保留这些行。因此,我预计结果如下:

^{tb2}$

我正在使用python 3.6.10

我多次发现这个解决方案:

idx=df.groupby(['dmc1','par'])['occure'].idxmax()

df_short=data.loc[idx]

但在我的例子中,这会引起一个错误: AttributeError:“SeriesGroupBy”对象没有属性“idmax”

我还发现了使用“idxmax()”而不是“idmax()”的提示,但这也引发了一个错误: 升值误差

如果有一个在Python3.6中运行的解决方案,那将是非常困难的


Tags: 数据df错误解决方案d2d1p2p3