グループごとの最大値の行(複数)を削除したい

前提

ここに質問の内容を詳しく書いてください。
(例)
最大値を含む行をすべて削除したい。
最大値を含む行をすべて抽出する方法がわからない。

実現したいこと

名前 A
A 1 いろは
A 1 にほへ
A 2 とちり
A 2 ぬるを
A 3
B 1
B 1 よた
B 2 れそ
B 2 つね
B 2 なら

名前ごとに、最大の代のものは信憑性が低いので削除したい、という状況です。
具体的には、Aからは3代目の1行を、Bからは2代目の3行を除いて

名前 A
A 1 いろは
A 1 にほへ
A 2 とちり
A 2 ぬるを
B 1
B 1 よた

このようなDataframeを作成したいです。

発生している問題・エラーメッセージ

まずは削除する行を抽出する必要があると思いました。
idxmaxを使って
df.groupby("名前")["代"].idxmax()
とすると、

名前 A
A 3
B 2 れそ

最大値を選択することはできますが、Bの2代目は複数行あるのに1行しか取得できませんでした。

コメントを投稿

0 コメント