0

我正在尝试使用 pandas 从一组结果中选择一个结果,其中某些列具有最小值。代表我的数据框的示例表是:

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 对应的第二行和 ID=2 对应的第一行将被选中。

我只能选择每列的最低值,这不是我需要的。非常感谢任何可以提供一些指导的人。

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 回答