我正在尝试使用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的第一行。
我似乎只能选择每列的最低值,这不是我需要的。非常感谢任何可以提供指导的人。
答案 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”值的组行。