群组和聚合问题

时间:2013-02-26 15:35:59

标签: pandas

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

ID   q  A B C D
---------------
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的第一行。

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

1 个答案:

答案 0 :(得分: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”值的组行。