2013-03-29 18 views
6

Sorumu yeniden yazarım. Benim amacım isePython: Ait oldukları grubun maksimum değerine sahip Satırları nasıl alabilirim?

Sp Mt Value count 
4 MM2 S4 bg  10 
5 MM2 S4 dgd 1 
6 MM4 S2 rd  2 
7 MM4 S2 cb  8 
8 MM4 S2 uyi 8 

Her grupta örneğin eşit max saymak TÜM satırları almak için: Ben dataFrame gibi var

: Aşağıdaki sorununa çözüm Arıyorum : [ 'Sp', 'Mt'] tarafından

MM4 S4 bg  10 
MM4 S2 cb  8 
MM4 S2 uyi 8 

Ben grup

Biri ben pandalar veya python bunu nasıl bilir?

+1

Bu sadece önceki sorunuz değil mi, tekrar sordu mu? – DSM

+0

Evet üzgünüm ama önceki iyi formüle edilmemiş – jojo12

+0

Olası kopya [Python: Grupby kullanarak gruplarda maksimum değere sahip satırın alınması] (http://stackoverflow.com/questions/15705630/python-getting-the-row -bun-içinde-the-max-değer-in-gruplar-kullanarak-groupby) –

cevap

14
>>> print d 
    Sp Mt Value Count 
ID      
4 MM2 S4 bg  10 
5 MM2 S4 dgd  1 
6 MM4 S2 rd  2 
7 MM4 S2 cb  8 
8 MM4 S2 uyi  8 

>>> d.groupby('Sp').apply(lambda t: t[t.Count==t.Count.max()]) 
     Sp Mt Value Count 
Sp ID      
MM2 4 MM2 S4 bg  10 
MM4 7 MM4 S2 cb  8 
    8 MM4 S2 uyi  8 
+2

Hemen gönderilmek üzereydim df.groupby (["Sp", "Mt"]) uygulamak için (lambda x: x [x ["count"] == x ["count"]. max()]) 'diğer soruya; Bence OP her iki grupta da bir grup istiyor. – DSM

+0

Çözümleriniz için çok teşekkür ederim! – jojo12

İlgili konular