我有一个这样的数据框:
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”对这个表进行分组,并在每个组中找到“发生”值最高的成员,并只保留这些行。因此,我预计结果如下:
我正在使用python 3.6.10
我多次发现这个解决方案:
idx=df.groupby(['dmc1','par'])['occure'].idxmax()
df_short=data.loc[idx]
但在我的例子中,这会引起一个错误: AttributeError:“SeriesGroupBy”对象没有属性“idmax”
我还发现了使用“idxmax()”而不是“idmax()”的提示,但这也引发了一个错误: 升值误差
如果有一个在Python3.6中运行的解决方案,那将是非常困难的
您需要先将值转换为数字:
相关问题 更多 >
编程相关推荐