9

質問を言い換えます。次の問題の解決策を探しています。

次のようなデータフレームがあります。

   Sp   Mt   Value  count
4  MM2  S4   bg     10
5  MM2  S4   dgd    1
6  MM4  S2   rd     2
7  MM4  S2   cb     8
8  MM4  S2   uyi    8

私の目的は、各グループでカウントが最大に等しいすべての行を取得することです。

MM4  S4   bg     10
MM4  S2   cb     8
MM4  S2   uyi    8

['Sp','Mt'] でグループ化します

誰かがパンダやパイソンでそれを行う方法を知っていますか?

4

1 に答える 1

19
>>> print d
     Sp  Mt Value  Count
ID                      
4   MM2  S4    bg     10
5   MM2  S4   dgd      1
6   MM4  S2    rd      2
7   MM4  S2    cb      8
8   MM4  S2   uyi      8

>>> d.groupby('Sp').apply(lambda t: t[t.Count==t.Count.max()])
         Sp  Mt Value  Count
Sp  ID                      
MM2 4   MM2  S4    bg     10
MM4 7   MM4  S2    cb      8
    8   MM4  S2   uyi      8
于 2013-03-29T17:21:06.997 に答える