2013-02-26 465 views
0

我試圖使用熊貓從一組結果中選擇一個結果,其中某列是最小值。代表我的數據框的示例表如下:羣組和聚合問題

 
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

回答

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」值的指數組行的功能。

+0

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

+0

這是正確的。這種技術正是我所需要的。謝謝。 – user2111827 2013-02-26 16:10:15