
前提
ここに質問の内容を詳しく書いてください。
(例)
最大値を含む行をすべて削除したい。
最大値を含む行をすべて抽出する方法がわからない。
実現したいこと
名前 | 代 | 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 コメント