群组和聚合问题
问题描述:
我试图使用熊猫从一组结果中选择一个结果,其中某列是最小值。代表我的数据框的示例表如下:群组和聚合问题
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的第一行。
我似乎只能选择每列的最低值,这不是我所需要的。任何人都可以提供一些指导,非常感谢。
答
这应该做什么你问:
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
如果你有任何工作可以分享,我相信用户会有更简单的时间协助。 – MonkeyDoug 2013-02-26 15:55:46