0

パンダを使用して、いくつかの列に最小値がある結果のグループから単一の結果を選択しようとしています。私のデータフレームを表すテーブルの例は次のとおりです。

ID q ABCD
---------------
1 10 1 2 3 4
1 5 5 6 7 8
2 1 9 1 2 3
2 2 8 7 6 5

ID でグループ化し、グループごとに最小の q を持つ行を選択したいと思います。したがって、ID=1 に対応する 2 行目と ID=2 に対応する 1 行目が選択されます。

各列の最小値しか選択できませんが、これは必要なものではありません。何らかのガイダンスを提供できる人に感謝します。

4

1 に答える 1

1

これはあなたが求めていることをするはずです:

In [10]: df.groupby('ID').apply(lambda x: x.ix[x['q'].idxmin()])
Out[10]:
    ID  q  A  B  C  D
ID
1    1  5  5  6  7  8
2    2  1  9  1  2  3

最小の「q」値のインデックスを持つグループ行を返す関数を適用します。

于 2013-02-26T15:43:04.230 に答える