群组和聚合问题

问题描述:

我试图使用熊猫从一组结果中选择一个结果,其中某列是最小值。代表我的数据框的示例表如下:群组和聚合问题

 
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的第一行。

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

+0

如果你有任何工作可以分享,我相信用户会有更简单的时间协助。 – MonkeyDoug 2013-02-26 15:55:46

这应该做什么你问:

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”值的指数组行的功能。

+0

OP希望基于特定列值的行最小,而不是所有列的最小值。 – Zelazny7 2013-02-26 15:51:20

+0

这是正确的。这种技术正是我所需要的。谢谢。 – user2111827 2013-02-26 16:10:15